:root{color-scheme:light;--ink:#172019;--muted:#606761;--line:#dfe4df;--accent:#3b6c37;--paper:#fcfdfb}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #3b6c37;outline-offset:5px}a:hover{text-decoration:underline;text-underline-offset:5px}.wrap{max-width:1240px;padding-inline:48px;margin-inline:auto}header{height:108px;display:flex;justify-content:space-between;align-items:center}.identity{font-size:25px;font-weight:750;letter-spacing:-1.2px}.dot{color:var(--accent)}nav{display:flex;gap:36px;align-items:center;font-size:15px}nav a{padding-block:14px}.nav-contact{border:1px solid var(--line);padding:13px 20px;border-radius:30px}.hero{display:grid;grid-template-columns:1.55fr 1fr;gap:70px;align-items:center;padding-top:63px;padding-bottom:86px}.eyebrow{font-size:12px;letter-spacing:1.8px;font-weight:650;margin:0 0 26px}.eyebrow .dot{font-size:11px;margin-right:9px}h1{font-size:clamp(3rem,5.4vw,5rem);font-weight:550;line-height:1.04;letter-spacing:-4px;margin:0 0 28px}.hero-copy{max-width:480px;color:var(--muted);font-size:20px;line-height:1.65;margin:0 0 30px}.actions{display:flex;align-items:center;gap:28px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:17px 23px;background:var(--ink);border-radius:32px;color:white;font-size:15px;font-weight:550;min-height:52px;transition:background .2s}.button:hover{background:var(--accent);text-decoration:none}.text-link{font-size:15px;padding-block:15px}.experience{margin:43px 0 0;font-size:13px;color:var(--muted);line-height:1.8}.experience span{display:block;color:var(--ink)}.portrait{margin:0;padding-top:6px;transform:rotate(2deg)}.portrait img{display:block;width:100%;height:auto;aspect-ratio:1/1.14;object-fit:cover;object-position:center;border-radius:8px 90px 8px 8px;filter:saturate(.65)}figcaption{display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted);padding-top:17px}.work{padding-top:53px;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:40px}h2{font-size:clamp(2.3rem,3.6vw,3.4rem);letter-spacing:-2px;line-height:1.12;font-weight:500;margin:0}.section-heading>p{max-width:340px;font-size:16px;line-height:1.7;color:var(--muted);margin:0 0 3px}.projects{display:grid;grid-template-columns:1fr 1fr;column-gap:32px;row-gap:50px}.project-image{height:400px;border-radius:14px;position:relative;overflow:hidden;display:flex;justify-content:center;padding:55px 24px 0}.blue{background:#e9effc}.purple{background:#ece9f6}.green{background:#e8eee0}.pink{background:#f5e8e8}.image-label{position:absolute;top:22px;left:24px;font-size:11px;letter-spacing:1.3px;font-weight:650;color:#4c5260}.project-image img{display:block;width:100%;height:370px;object-fit:contain;object-position:top;filter:drop-shadow(0 12px 15px #19233018);transition:transform .3s}.project:hover .project-image img{transform:translateY(-5px)}.project-title{display:flex;justify-content:space-between;align-items:center;margin-top:17px}h3{font-size:25px;font-weight:550;letter-spacing:-.7px;margin:0}.project-title>a{font-size:26px;display:grid;place-items:center;width:44px;height:44px}.project>p{font-size:16px;line-height:1.65;max-width:450px;color:var(--muted);margin:5px 0 22px}.project-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:13px}.project-bottom>span{color:var(--muted)}.project-bottom a{padding-block:12px}.compact{border-top:1px solid var(--line);padding-top:12px}.about{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:90px;padding-top:70px;padding-bottom:85px;border-top:1px solid var(--line)}.about-copy p{font-size:17px;line-height:1.8;color:var(--muted);margin:0 0 20px}.stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.stack span{font-size:13px;border:1px solid var(--line);padding:9px 14px;border-radius:22px}.contact{background:#eaf0e7;padding:66px 0 46px}.contact h2{font-size:clamp(3rem,6vw,5.5rem);letter-spacing:-3.5px}.contact-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:26px}.contact-bottom p{color:#4e5c4e;line-height:1.7;font-size:18px}.preview-note{font-size:12px;color:#596757;margin-top:30px}footer{display:flex;justify-content:space-between;gap:24px;padding-block:30px;font-size:13px;color:var(--muted)}footer div{display:flex;gap:24px}footer a{display:inline-block;padding-block:12px}.skip{position:absolute;top:-80px;padding:14px;background:white;z-index:5}.skip:focus{top:5px}@media(min-width:1450px){.hero{padding-top:85px;padding-bottom:105px}}@media(max-width:800px){.wrap{padding-inline:25px}header{height:86px}nav{gap:20px}.hero{gap:30px;grid-template-columns:1.3fr 1fr;padding-top:40px;padding-bottom:60px}h1{letter-spacing:-2.5px}.hero-copy{font-size:18px}.actions{gap:16px;flex-wrap:wrap}.portrait img{border-top-right-radius:60px}.experience{margin-top:25px}.project-image{height:310px}.project-image img{height:290px}.section-heading{gap:25px}.about{gap:30px}.project-bottom{align-items:start;flex-direction:column;gap:0}}@media(max-width:580px){header{height:82px}.identity{font-size:22px}nav{gap:17px;font-size:14px}.nav-contact{padding:11px 14px}nav>a:first-child{display:none}.hero{grid-template-columns:1fr;padding-top:30px;gap:35px}.hero h1{font-size:3.5rem}.hero-copy{font-size:18px}.eyebrow{font-size:11px}.portrait{max-width:300px;justify-self:center;width:100%}.portrait img{aspect-ratio:1/1}.experience{font-size:13px}.section-heading{display:block}.section-heading>p{margin-top:22px}.projects{grid-template-columns:1fr;gap:34px}.project-image{height:360px}.project-image img{height:350px}.project-bottom{flex-direction:row;align-items:center;gap:12px;font-size:12px}.about{grid-template-columns:1fr;margin-top:55px;padding-top:45px;padding-bottom:50px}.contact{padding-top:45px}.contact-bottom{align-items:start;flex-direction:column;gap:12px}.contact h2{letter-spacing:-2px}footer{flex-direction:column;gap:6px;font-size:12px}footer div{gap:25px}h2{letter-spacing:-1.5px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.project:hover .project-image img{transform:none}}

.legacy{max-width:900px;padding-block:40px 80px}.legacy img{max-width:100%;height:auto;max-height:550px;object-fit:contain}.legacy p,.legacy li{font-size:17px;line-height:1.8}.legacy h1,.legacy h2,.legacy h3{margin-block:32px 20px}.legacy a{text-decoration:underline}.legacy figure{margin:24px 0}

/* Project case study */
.case-hero{display:grid;grid-template-columns:1.08fr .92fr;gap:76px;align-items:center;padding-top:36px;padding-bottom:92px}.case-intro h1{font-size:clamp(3.2rem,5.5vw,5.15rem)}.back-link{display:inline-block;margin-bottom:48px;color:var(--muted);font-size:14px}.case-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;border-top:1px solid var(--line);margin:48px 0 0;padding-top:24px}.case-facts div{min-width:0}.case-facts dt{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.case-facts dd{font-size:14px;line-height:1.45;margin:0}.bripitol-visual{position:relative;min-height:650px;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;border-radius:16px 100px 16px 16px;background:#ebe8f8;padding:65px 50px 0}.visual-label{position:absolute;top:28px;left:30px;font-size:11px;font-weight:650;letter-spacing:1.5px;color:#58536b}.bripitol-phone{display:block;width:min(76%,300px);height:auto;filter:drop-shadow(0 26px 24px #25203930);transform:translateY(24px)}.score-card{position:absolute;right:25px;bottom:29px;display:flex;flex-direction:column;width:112px;height:112px;border-radius:50%;align-items:center;justify-content:center;background:#172019;color:#fff;transform:rotate(7deg)}.score-card strong{font-size:36px;line-height:.9;font-weight:560}.score-card span{font-size:12px;margin-top:7px}.case-overview{display:grid;grid-template-columns:1fr 1fr;gap:76px;border-top:1px solid var(--line);padding-top:72px;padding-bottom:88px}.case-copy p,.build-section>div:last-child>p{font-size:18px;line-height:1.8;color:var(--muted);margin:0 0 22px}.play-section{border-top:1px solid var(--line);padding-top:64px;padding-bottom:92px}.play-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.play-grid article{min-height:260px;border-radius:14px;padding:28px;background:#f0f2ef}.play-grid article:nth-child(2){background:#f3e8ee}.play-grid article:nth-child(3){background:#e9eef7}.play-grid article>span{font-size:12px;color:var(--muted)}.play-grid h3{font-size:23px;margin-top:96px}.play-grid p{font-size:15px;line-height:1.6;color:var(--muted);margin:8px 0 0}.build-section{display:grid;grid-template-columns:.75fr 1.25fr;gap:78px;align-items:center;border-top:1px solid var(--line);padding-top:80px;padding-bottom:94px}.build-mark{min-height:370px;border-radius:14px 75px 14px 14px;background:#f3f5f1;display:grid;place-items:center}.build-mark img{width:132px;height:132px;border-radius:29px;box-shadow:0 24px 45px #1c261f1c}.build-section .stack{margin-top:30px}.case-cta{background:#e9e6f5;padding:68px 0 50px}.case-cta h2{font-size:clamp(3rem,6vw,5.5rem);letter-spacing:-3.5px}.case-cta-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:28px}.case-cta-bottom p{font-size:18px;line-height:1.7;color:#575369}.case-cta .button:hover{background:#554d79}
@media(max-width:800px){.case-hero{gap:35px;grid-template-columns:1.08fr .92fr}.bripitol-visual{min-height:520px;padding-inline:25px}.case-facts{grid-template-columns:1fr}.case-overview,.build-section{gap:38px}.play-grid{gap:12px}.play-grid article{padding:22px}.play-grid h3{margin-top:70px}}
@media(max-width:580px){.case-hero{grid-template-columns:1fr;padding-top:22px;padding-bottom:58px}.back-link{margin-bottom:36px}.case-intro h1{font-size:3.5rem}.case-facts{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:34px}.case-facts dd{font-size:12px}.bripitol-visual{min-height:510px;border-top-right-radius:70px}.case-overview,.build-section{grid-template-columns:1fr;padding-top:50px;padding-bottom:58px}.play-section{padding-top:48px;padding-bottom:58px}.play-grid{grid-template-columns:1fr}.play-grid article{min-height:190px}.play-grid h3{margin-top:54px}.build-mark{min-height:280px}.case-cta{padding-top:48px}.case-cta h2{letter-spacing:-2px}.case-cta-bottom{align-items:flex-start;flex-direction:column;gap:14px}}

/* App Store screenshot galleries */
.orange{background:#f5ede4}.game{background:#ebe8f8}.shot-strip{display:flex;align-items:flex-end;justify-content:center;gap:13px;width:100%;height:100%;padding-top:8px}.project-image .shot-strip img{display:block;width:min(31%,178px);height:auto;max-height:348px;object-fit:contain;object-position:bottom;border-radius:11px 11px 0 0;box-shadow:0 14px 24px #19233024;filter:none;transition:transform .3s}.project-image .shot-strip img:first-child{transform:translateY(30px) rotate(-2.5deg)}.project-image .shot-strip img:nth-child(2){position:relative;z-index:2;transform:translateY(5px)}.project-image .shot-strip img:last-child{transform:translateY(30px) rotate(2.5deg)}.project:hover .shot-strip img:first-child{transform:translateY(24px) rotate(-3deg)}.project:hover .shot-strip img:nth-child(2){transform:translateY(0)}.project:hover .shot-strip img:last-child{transform:translateY(24px) rotate(3deg)}
.case-shot-strip{display:flex;align-items:flex-end;justify-content:center;gap:12px;width:100%;height:565px}.case-shot-strip img{display:block;width:31%;height:auto;max-height:520px;object-fit:contain;border-radius:12px 12px 0 0;box-shadow:0 22px 28px #2520392b}.case-shot-strip img:first-child{transform:translateY(42px) rotate(-3deg)}.case-shot-strip img:nth-child(2){position:relative;z-index:2;transform:translateY(12px)}.case-shot-strip img:last-child{transform:translateY(42px) rotate(3deg)}
@media(max-width:800px){.shot-strip{gap:8px}.project-image .shot-strip img{max-height:276px}.bripitol-visual{padding-inline:18px}.case-shot-strip{height:450px;gap:7px}}
@media(max-width:580px){.project-image .shot-strip img{max-height:322px}.case-shot-strip{height:440px}}
@media(prefers-reduced-motion:reduce){.project-image .shot-strip img,.project:hover .shot-strip img{transition:none;transform:none}}
