@font-face{font-family:InterTight;src:local('Inter Tight');font-weight:100 900;font-display:swap}
:root{--bg:#0b0b0c;--surface:#171719;--line:#303034;--text:#f2efe9;--muted:#aeaaa4;--accent:#ff7445;--sans:'Inter Tight',InterTight,system-ui,sans-serif;--serif:'Instrument Serif',Georgia,serif;--radius:14px;color-scheme:dark}
*{box-sizing:border-box}html{scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img,video{display:block;max-width:100%}img{height:auto}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:3px solid var(--accent);outline-offset:6px}a:hover{text-decoration-color:var(--accent)}.wrap{width:min(100% - 80px,1360px);margin-inline:auto}.eyebrow{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--muted)}.skip{position:fixed;top:12px;left:12px;z-index:200;background:var(--text);color:var(--bg);padding:12px 20px;transform:translateY(-150%)}.skip:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.nav{position:sticky;top:0;z-index:50;background:#0b0b0cf5;border-bottom:1px solid var(--line);backdrop-filter:blur(16px)}.nav-inner{min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:24px}.wordmark{font-weight:600;font-size:17px;letter-spacing:-.03em;padding-block:12px}.nav ul{display:flex;align-items:center;list-style:none;gap:28px;margin:0;padding:0;font-size:14px}.nav li a{display:inline-flex;min-height:44px;align-items:center}.nav li a:hover,.nav li a[aria-current]{color:var(--accent)}.nav .contact-link{padding:0 18px;border:1px solid #4b4a48;border-radius:99px}.hero{padding:55px 0 54px;display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(32px,6vw,88px);align-items:center}.identity{display:flex;align-items:center;gap:13px;margin-bottom:24px}.avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;border:1px solid #ffffff30}.identity p{margin:0;font-size:14px}.identity small{display:block;color:var(--muted);font-size:12px;margin-top:1px}h1,h2,h3,p{margin-top:0}.hero h1{font:400 clamp(52px,6.1vw,94px)/.98 var(--serif);letter-spacing:-.035em;margin-bottom:22px;max-width:12ch}.hero h1 em{color:var(--accent);font-weight:400}.hero-intro{max-width:41ch;color:#c9c6c1;font-size:17px;line-height:1.6;margin-bottom:24px}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:46px;padding:11px 22px;border:1px solid #4d4b48;border-radius:99px;background:transparent;color:var(--text);font-size:14px;font-weight:500;transition:background-color .18s,border-color .18s,color .18s}.button.primary{background:var(--text);border-color:var(--text);color:var(--bg)}.button:hover{border-color:var(--accent);color:var(--accent)}.button.primary:hover{background:var(--accent);color:var(--bg)}.hero-art{margin:0;min-width:0}.hero-shot{display:block;position:relative;border-radius:var(--radius);overflow:hidden;background:var(--surface);outline:1px solid #ffffff16;outline-offset:-1px}.hero-shot img{aspect-ratio:4/3;width:100%;object-fit:cover}.hero-shot .watch{position:absolute;left:20px;bottom:20px;padding:11px 18px;background:#0b0b0cf2;border:1px solid #ffffff40;border-radius:99px;font-size:13px;display:flex;gap:14px}.hero-art figcaption{display:flex;justify-content:space-between;gap:16px;margin-top:13px;font-size:13px;color:var(--muted)}.hero-art figcaption strong{font-weight:400;color:var(--text)}
.section{padding-top:76px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:20px;margin-bottom:30px;flex-wrap:wrap}.section-head h2{font:400 clamp(38px,4.2vw,64px)/1 var(--serif);letter-spacing:-.025em;margin:0}.section-head .eyebrow{margin:0}.selected{padding-top:0}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 24px}.project{min-width:0}.project a{display:block}.project .visual{border-radius:var(--radius);overflow:hidden;position:relative;background:var(--surface);outline:1px solid #ffffff1a;outline-offset:-1px}.project .visual img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .45s cubic-bezier(.2,.7,.2,1)}.project[data-key=mascot] .visual img{object-position:center top}.project .label{position:absolute;left:16px;bottom:16px;display:inline-block;font-size:12px;background:#0b0b0cef;border:1px solid #ffffff35;border-radius:99px;padding:7px 12px;color:var(--text)}.project .cap{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-top:15px}.project h3{font-size:21px;font-weight:500;letter-spacing:-.015em;margin:0}.project .year{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.project .summary{font-size:14px;color:var(--muted);margin:6px 0 0;max-width:56ch}.project .project-type{font-size:12px;color:var(--muted);margin:12px 0 0;display:flex;justify-content:space-between;gap:12px}.project a:hover h3{color:var(--accent)}
.more-head{align-items:center}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters button{min-height:42px;border:1px solid #4b4946;border-radius:99px;padding:8px 15px;background:transparent;color:var(--text);font-size:13px}.filters button[aria-pressed=true]{background:var(--text);border-color:var(--text);color:var(--bg)}.filters button:hover{border-color:var(--accent)}.filters span{margin-left:5px;opacity:.7;font-size:11px}.more-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 20px}.more-grid h3{font-size:17px}.more-grid .summary{font-size:13px}.more-grid .visual img{aspect-ratio:4/3}.project[data-key=didac] .visual img{object-position:center top}.result-count{font-size:13px;color:var(--muted);margin:0 0 22px}.project[hidden]{display:none}.all-work{display:flex;justify-content:center;margin-top:32px}.about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:70px}.about-profile{display:flex;align-items:center;gap:18px;margin-bottom:28px}.about-profile img{width:82px;height:82px;border-radius:50%;border:1px solid #ffffff25}.about-profile p{font-size:21px;letter-spacing:-.02em;margin:0}.about-profile small{display:block;color:var(--muted);font-size:14px}.about-lead{font:400 clamp(30px,3.1vw,46px)/1.12 var(--serif);max-width:20ch;letter-spacing:-.02em}.about-lead em{color:var(--accent)}.about-copy p{color:#c9c6c1;max-width:57ch}.disciplines{margin:32px 0;display:grid;gap:16px}.discipline{border-top:1px solid var(--line);padding-top:16px;display:grid;grid-template-columns:1fr 1.25fr;gap:20px}.discipline h3{font-size:16px;font-weight:500;margin:0}.discipline p{font-size:14px;color:var(--muted);margin:0}.experience{margin-top:38px;display:grid;grid-template-columns:1fr 1fr;gap:30px}.experience ul{list-style:none;padding:0;margin:0}.experience li{font-size:14px;color:var(--muted);border-top:1px solid var(--line);padding:10px 0}.experience li strong{font-weight:400;color:var(--text)}.about-links{display:flex;flex-wrap:wrap;gap:20px;font-size:14px;margin-top:26px}.text-link{text-decoration:underline;text-decoration-color:#68645f;text-underline-offset:5px}.text-link:hover{color:var(--accent);text-decoration-color:var(--accent)}
.contact{padding:100px 0 30px;margin-top:20px}.contact-top{border-top:1px solid var(--line);padding-top:28px;display:grid;grid-template-columns:1fr auto;align-items:start;gap:28px}.contact h2{font:400 clamp(48px,6.5vw,100px)/1 var(--serif);letter-spacing:-.035em;margin-bottom:25px;max-width:14ch}.contact h2 em{font-weight:400;color:var(--accent)}.email{font-size:clamp(16px,2vw,28px);overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:#68645f;text-underline-offset:7px}.contact-actions{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;padding-top:8px;max-width:320px}.socials{display:flex;gap:24px;flex-wrap:wrap;margin-top:36px;font-size:14px}.foot{border-top:1px solid var(--line);margin-top:70px;padding-top:20px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.toast{position:fixed;z-index:100;left:50%;bottom:24px;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:12px 20px;border-radius:8px;max-width:calc(100% - 32px);box-shadow:0 4px 40px #0006;font-size:14px}.toast:empty{display:none}
.case-top{padding:35px 0 0}.back{display:inline-flex;min-height:44px;align-items:center;font-size:14px;color:var(--muted)}.case-heading{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;padding:34px 0 38px;align-items:end}.case-heading .eyebrow{margin-bottom:16px}.case-heading h1{font:400 clamp(44px,6vw,86px)/1 var(--serif);letter-spacing:-.025em;margin:0;max-width:18ch}.case-heading .intro{color:#c9c6c1;font-size:18px;max-width:42ch;margin:0}.case-hero{overflow:hidden;border-radius:var(--radius);outline:1px solid #ffffff20;outline-offset:-1px;background:var(--surface)}.case-hero img{width:100%;max-height:78vh;object-fit:cover}.case-hero[data-key=mascot] img{aspect-ratio:16/9;object-position:top}.case-meta{display:grid;grid-template-columns:1fr 2fr 1fr;gap:32px;padding:30px 0;border-bottom:1px solid var(--line);margin:0}.case-meta dt{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}.case-meta dd{font-size:16px;margin:0}.case-story{padding:68px 0;display:grid;grid-template-columns:1fr 2fr;gap:70px}.case-story h2{font:400 38px/1.08 var(--serif);margin-bottom:24px}.case-story .story-body>p{color:#c9c6c1;max-width:66ch}.case-story h3{font-size:18px;font-weight:500;margin-bottom:8px}.case-story .process{padding:22px 0;border-top:1px solid var(--line)}.case-story .process p{color:var(--muted);margin:0;max-width:62ch}.film-section{padding:10px 0 45px}.film-head{display:flex;gap:20px;justify-content:space-between;align-items:baseline;flex-wrap:wrap;margin-bottom:22px}.film-head h2{font:400 42px/1 var(--serif);margin:0}.film-section video{width:100%;max-height:76vh;aspect-ratio:16/9;background:#000;border-radius:var(--radius);outline:1px solid #ffffff20;outline-offset:-1px}.film-note{color:var(--muted);font-size:13px;margin-top:14px}.gallery{display:grid;gap:24px}.gallery figure{margin:0}.gallery img{width:100%;border-radius:var(--radius)}.gallery figcaption{font-size:13px;color:var(--muted);margin-top:10px}.gallery .pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.case-bottom{border-top:1px solid var(--line);margin-top:60px;padding-top:28px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}.case-bottom h2{font:400 38px/1.1 var(--serif);margin:0}.transcript{margin:28px 0;border-top:1px solid var(--line);padding-top:16px}.transcript summary{cursor:pointer;color:var(--muted);font-size:14px}.transcript p{color:#c9c6c1;max-width:65ch;font-size:15px;margin-top:15px}.resume{max-width:850px;margin:50px auto;padding:0 24px}.resume h1{font:400 56px/1 var(--serif)}.resume h2{font:400 32px/1 var(--serif);border-top:1px solid var(--line);padding-top:20px;margin-top:35px}.resume h3{font-size:18px}.resume li{color:var(--muted);margin:10px 0}.resume .print-actions{display:flex;gap:15px;margin-bottom:40px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.project a:hover .visual img{transform:scale(1.025)}.button:active{transform:scale(.96)}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.button{transition:background-color .18s,border-color .18s,color .18s,transform .15s}}
@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.nav ul{gap:18px}.hero{gap:32px}.hero h1{font-size:65px}.about-grid{gap:40px}.contact-top{grid-template-columns:1fr}.contact-actions{max-width:none}.case-story{gap:35px;grid-template-columns:1fr 1.7fr}.project h3{font-size:19px}.more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){html{scroll-padding-top:122px}.wrap{width:calc(100% - 36px)}.nav-inner{min-height:98px;display:block;padding:12px 0 7px}.wordmark{display:block;font-size:16px;padding:0}.nav ul{justify-content:space-between;gap:8px;margin-top:5px;font-size:13px}.nav .contact-link{border:0;padding:0}.nav li a{min-height:38px}.hero{grid-template-columns:1fr;gap:30px;padding:32px 0 46px}.identity{margin-bottom:20px}.hero h1{font-size:clamp(52px,13.7vw,76px);max-width:14ch}.hero-intro{font-size:16px;max-width:40ch}.hero-shot img{aspect-ratio:16/10}.hero-shot .watch{left:14px;bottom:14px}.hero-art figcaption{font-size:12px}.section{padding-top:55px}.selected{padding-top:0}.section-head{margin-bottom:24px;padding-top:18px;gap:14px}.section-head h2{font-size:40px}.section-head>.eyebrow{font-size:10px}.projects{grid-template-columns:1fr;gap:32px}.project h3{font-size:20px}.project .summary{font-size:14px}.project .label{left:12px;bottom:12px}.more-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 13px}.more-grid h3{font-size:15px;line-height:1.3}.more-grid .summary{font-size:12px;line-height:1.5}.more-grid .cap{gap:5px}.more-grid .year{display:none}.more-grid .label{display:none}.more-grid .project-type{font-size:11px;display:block;margin-top:8px}.more-grid .project-type span:last-child{display:none}.filters{gap:6px}.filters button{padding:8px 12px;font-size:12px}.about-grid{grid-template-columns:1fr;gap:25px}.about-lead{font-size:35px;max-width:25ch;margin-bottom:0}.about-profile{margin-bottom:24px}.discipline{grid-template-columns:1fr;gap:6px}.experience{grid-template-columns:1fr;gap:24px}.contact{padding-top:70px}.contact h2{font-size:60px}.contact-top{padding-top:24px;gap:18px}.contact-actions{padding:0}.foot{margin-top:45px;font-size:11px;gap:12px}.case-top{padding-top:18px}.case-heading{grid-template-columns:1fr;gap:22px;padding:25px 0 30px}.case-heading h1{font-size:49px}.case-heading .intro{font-size:16px}.case-meta{grid-template-columns:1fr 1fr;gap:20px;padding:24px 0}.case-meta>div:nth-child(2){grid-column:1/-1;grid-row:2}.case-meta dd{font-size:14px}.case-story{grid-template-columns:1fr;gap:4px;padding:40px 0}.case-story h2{font-size:34px}.case-story p{font-size:16px}.case-story .process{padding:18px 0}.film-head h2{font-size:35px}.gallery{gap:18px}.gallery .pair{grid-template-columns:1fr;gap:18px}.case-bottom h2{font-size:32px}.case-hero img{max-height:none}.case-hero[data-key=mascot] img{aspect-ratio:4/3}.resume{margin-top:30px}}
@media(max-width:350px){.more-grid{grid-template-columns:1fr}.hero h1{font-size:48px}.nav ul{font-size:12px;gap:5px}.experience{gap:20px}}
@media(forced-colors:active){:focus-visible{outline:3px solid Highlight}.button,.filters button{border:1px solid ButtonText}}
@media print{body{background:white;color:black;font-size:11pt}.nav,.contact,.print-actions,.toast,.skip{display:none!important}.resume{max-width:none;margin:0;padding:0}.resume h1{font-size:32pt}.resume h2{font-size:18pt;margin-top:18pt}.resume li,.resume p{color:#222}.resume section{break-inside:avoid}a{text-decoration:none}}
/* Keep the opening compact enough for work to enter the first desktop viewport. */
@media(min-width:681px){.hero{padding:32px 0 36px}.hero h1{font-size:clamp(52px,5.4vw,78px);max-width:none;margin-bottom:18px}.hero h1 em{font-size:.9em}.identity{margin-bottom:18px}.hero-intro{font-size:16px;max-width:46ch;margin-bottom:20px}.hero-shot img{aspect-ratio:16/11}}
[hidden]{display:none!important}
.case-hero video{width:100%;aspect-ratio:16/9;max-height:76vh;object-fit:contain;background:#000}
/* UI design boards retain their original hierarchy and readable screen layouts. */
.project[data-key=ui-whitepaper] .visual img{object-position:center top}
.case-hero[data-key=ui-whitepaper] img{aspect-ratio:4/3;object-fit:cover;object-position:top;max-height:none}
.case-hero[data-key=ui-nep] img{max-height:none;object-fit:contain}
/* Project pages share the masonry homepage's quieter type and neutral surfaces. */
:root{--bg:#000;--surface:#1a1a1a;--text:#f3f3f3;--muted:#a1a1a1;--line:#303030;--sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--serif:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--accent:#f5f5f5}
.nav{background:#000f}.case-heading h1{font-size:clamp(34px,4.2vw,58px);line-height:1.08;font-weight:650;letter-spacing:-.035em}.case-story h2{font-size:28px;line-height:1.18;font-weight:600;letter-spacing:-.025em}.case-heading .intro{font-size:16px}.case-bottom h2{font-size:26px;line-height:1.2;font-weight:600}.contact h2{font-size:clamp(34px,5vw,64px);font-weight:600;letter-spacing:-.04em}.contact h2 em{font-style:normal;color:inherit}.big-mail,.email{font-family:var(--sans)}.resume h1{font-size:44px;font-weight:650;letter-spacing:-.035em}.resume h2{font-size:24px;font-weight:600}

/* Keep résumé actions usable on narrow screens. */
.resume .print-actions{flex-wrap:wrap;align-items:center}.resume .print-actions .button{max-width:100%;white-space:normal;text-align:center}

/* Selected artwork and related-project collections. */
.gallery-section{margin-block:40px 60px}.gallery-section>h2{font-size:clamp(24px,3vw,36px);line-height:1.2;margin:0 0 24px}.gallery-pairs{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.gallery figcaption .text-link{display:block;width:fit-content;margin-top:8px;min-height:32px;padding-block:6px}.gallery figure{min-width:0}.gallery img{height:auto;display:block}.gallery-section a:focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(max-width:680px){.gallery-pairs{grid-template-columns:1fr}.gallery-section{margin-block:30px 40px}.gallery figcaption .text-link{min-height:44px}}

.case-hero[data-key=social] img,.case-hero[data-key=guide] img,.case-hero[data-key=fitlite] img,.case-hero[data-key=simplilearn] img,.case-hero[data-key=teachmint-web] img,.case-hero[data-key=teachmore-web] img{object-fit:contain;background:#17191b}
.artwork-link{display:block;border-radius:var(--radius);color:var(--muted)}.artwork-link>span{display:block;font-size:12px;margin-top:8px;line-height:1.6}.artwork-link:focus-visible{outline:2px solid #f3f3f3;outline-offset:5px}.artwork-link:hover>span{color:var(--text)}

.gallery-triples{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.case-hero[data-key=appstore] img,.case-hero[data-key=mealmonkey] video{object-fit:contain;background:#111}
.film-library{padding-block:44px 70px}.film-library>.eyebrow{margin-top:42px}.film-library>h1{font-size:clamp(36px,5vw,64px);line-height:1.1;margin:15px 0 24px;max-width:18ch}.film-library>.intro{color:var(--muted);max-width:52ch;margin-bottom:36px}.film-library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}.film-library-card{min-width:0;scroll-margin-top:100px}.film-library-card>a{display:block}.film-library-card img{width:100%;aspect-ratio:16/9;object-fit:contain;background:#17191b;border-radius:14px;outline:1px solid #ffffff1a}.film-library-card h2{font-size:20px;line-height:1.3;margin:14px 0 6px}.film-library-card p{font-size:13px;color:var(--muted);margin:0}
@media(max-width:900px){.film-library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.gallery-triples{grid-template-columns:1fr}.film-library-grid{grid-template-columns:1fr}.film-library{padding-top:28px}.film-library-card h2{font-size:20px}}
