/* Portfolio navigation and page hierarchy */
.hero-visual{background:transparent;border-radius:0}.hero-visual:before{display:none}.hero-browser{top:55px}.hero-social{object-fit:cover;aspect-ratio:9/16;max-height:235px;object-position:center}.visual-label{display:none}.main-nav{gap:30px}.main-nav a[aria-current=page]:after{transform:scaleX(1)}.nav-work{display:flex;align-items:center;position:relative;gap:3px}.work-toggle{display:grid;place-items:center;width:28px;height:32px;padding:0;border:0;color:var(--ink);background:none;border-radius:4px}.work-toggle:hover{background:var(--pale)}.work-dropdown{position:absolute;top:46px;left:-20px;width:285px;display:flex;flex-direction:column;padding:12px;background:var(--white);border:1px solid var(--line);border-radius:6px;box-shadow:0 14px 35px #17312215;z-index:50}.main-nav .work-dropdown a{font-size:14px;padding:12px;border-radius:3px;line-height:1.35}.main-nav .work-dropdown a:after{display:none}.main-nav .work-dropdown a:hover{background:var(--pale)}.work-dropdown .all-work{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);margin-bottom:5px;padding-bottom:16px!important;font-weight:700}.page-opening{padding-top:34px}.breadcrumbs{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;line-height:1.5;color:var(--muted);margin-bottom:52px}.breadcrumbs a:hover{text-decoration:underline;text-underline-offset:3px}.breadcrumbs [aria-current]{color:var(--ink)}.page-heading{display:grid;grid-template-columns:1fr .72fr;gap:85px;margin-bottom:50px;align-items:start}.page-heading h1{font-size:clamp(46px,5.8vw,80px);line-height:1.02;letter-spacing:-.055em;margin:0}.page-heading>p{font-size:16px;color:var(--muted);line-height:1.7;margin:10px 0 0}.page-opening>.eyebrow{margin-bottom:20px}.mini-cta{display:flex;align-items:center;justify-content:space-between;gap:35px;border-top:1px solid var(--line);padding-block:48px 58px;margin-top:45px}.mini-cta h2{font-size:34px;margin-bottom:10px}.mini-cta p{font-size:14px;color:var(--muted);margin:0}.v2-footer{padding-block:35px 23px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:30px;margin-bottom:20px;border-bottom:1px solid #40554b}.footer-top .brand{color:var(--paper)}.footer-top nav{display:flex;gap:25px;font-size:12px}.footer-top>a:last-child{font-size:12px}.v2-footer a:hover{text-decoration:underline;text-underline-offset:4px}.category-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px 32px}.category-art{position:relative;border-radius:5px;overflow:hidden;aspect-ratio:1.44;background:#e5e9e1}.category-art>.project-art{width:100%;height:100%;aspect-ratio:auto}.category-art .card-open{position:absolute;right:17px;bottom:17px;width:40px;height:40px;background:white;border-radius:50%;display:grid;place-items:center;box-shadow:0 2px 12px #0001;z-index:4;transition:transform .2s}.category-card a:hover .card-open{transform:translateX(3px)}.category-caption{padding-top:20px}.category-caption h2{font-size:27px;margin-bottom:11px}.category-caption p{font-size:14px;max-width:500px;color:var(--muted);margin:0}.category-web{height:100%;display:flex;align-items:center;justify-content:center;padding:22px;background:#e5e9e1}.category-web .browser-card{width:100%;transition:transform .3s}.category-card a:hover .browser-card{transform:translateY(-4px)}.category-social{height:100%;position:relative;background:#e6e6df;display:flex;align-items:center;justify-content:center;gap:28px;padding:24px 45px}.category-social .video-poster{height:95%;width:auto;max-width:45%;object-fit:cover;border:5px solid white;box-shadow:0 12px 25px #1c312426;transform:rotate(-5deg)}.category-social .post-poster{width:43%;border:5px solid white;box-shadow:0 12px 25px #1c312426;transform:rotate(6deg)}.play-badge{position:absolute;left:33%;top:45%;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--green);width:40px;height:40px;font-size:15px;box-shadow:0 3px 15px #0002}.category-rows{border-top:1px solid var(--line);margin-top:42px}.category-rows>a{display:grid;grid-template-columns:.8fr 1.2fr 28px;align-items:center;gap:30px;padding:26px 0;border-bottom:1px solid var(--line)}.category-rows h3{font-size:23px;margin:0}.category-rows p{font-size:14px;color:var(--muted);margin:0}.category-rows a:hover h3{color:var(--green)}.home-about{background:var(--pale);padding-block:70px}.home-about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.home-about h2{font-size:44px;margin-bottom:23px}.home-about .profile{font-size:21px;line-height:1.6;margin-bottom:28px}.home-about .button{margin-right:10px;margin-bottom:10px}.all-categories{padding-bottom:55px}.category-navigation{display:flex;gap:24px;flex-wrap:wrap;border-block:1px solid var(--line);padding-block:17px;margin-bottom:40px;font-size:13px}.category-navigation a{padding-block:5px;color:var(--muted);border-bottom:1px solid transparent}.category-navigation a[aria-current=page]{color:var(--green);border-color:var(--green);font-weight:700}.category-projects{padding-block:10px 45px}.app-art{background:#e3e8e1}.app-art .browser-card{width:90%}.prototype-tag{position:absolute;left:15px;top:15px;padding:5px 10px;border-radius:3px;background:var(--green);color:white;font-size:11px}.context-note{display:flex;align-items:center;gap:12px;padding:20px 0;color:var(--muted);font-size:13px}.context-note p{margin:0}.prototype-dot{display:inline-block;width:7px;height:7px;background:#698459;border-radius:50%;flex-shrink:0}.section-jumps{display:flex;gap:24px;margin-bottom:40px;font-size:13px}.section-jumps a{border-bottom:1px solid currentColor;padding-bottom:5px}.social-section{padding-bottom:70px;scroll-margin-top:110px}.social-section+.social-section{border-top:1px solid var(--line);padding-top:25px}.social-section .project-subheading{margin-top:10px;align-items:start}.social-section .project-subheading>p{max-width:470px;line-height:1.7;font-size:15px}.social-section .eyebrow{font-size:11px;margin-bottom:12px}.social-section h2{font-size:40px}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.video-card{background:white;border:1px solid var(--line);border-radius:5px;overflow:hidden}.video-card video{display:block;width:100%;height:550px;background:#101614;object-fit:contain}.video-info{padding:22px}.video-info h3{font-size:22px;line-height:1.2;margin-bottom:10px}.video-info p{font-size:13px;color:var(--muted);margin:0}.about-full{display:grid;grid-template-columns:.7fr 1.3fr;gap:90px;padding-block:0 40px}.about-identity .portrait{width:125px;height:125px;margin-bottom:30px}.about-identity h2{font-size:35px;line-height:1.16;letter-spacing:-.035em;margin-bottom:18px}.about-identity>p{font-size:14px;color:var(--muted)}.about-narrative .profile{font-size:22px;line-height:1.55;margin-bottom:28px}.about-narrative>p:not(.profile){font-size:15px;color:var(--muted);line-height:1.8}.career-block{border-top:1px solid var(--line);margin-top:25px;padding-block:60px}.career-block .career-layout{grid-template-columns:.7fr 1.3fr;gap:90px}.career-block h2{font-size:43px}.education-summary{border-block:1px solid var(--line);padding-block:55px;display:grid;grid-template-columns:.7fr 1.3fr;gap:90px}.education-summary h2{font-size:37px;line-height:1.1;margin:0}.education-summary h3{font-size:22px;margin-bottom:8px}.education-summary p{font-size:14px;color:var(--muted);margin-bottom:25px}.tools-section{padding-block:45px 25px}.tools-section .expertise{margin-top:0;border-top:0;padding-top:0}.resume-content{padding-bottom:30px}.resume-downloads{display:grid;grid-template-columns:1fr 1fr;gap:32px;max-width:950px;margin-bottom:60px}.resume-downloads .cv-card{padding:24px}.resume-downloads .cv-preview{height:270px;padding:20px 45px 0}.resume-downloads h2{font-size:26px;margin-bottom:9px}.resume-downloads .cv-card p{font-size:12px}.resume-downloads .download-link{font-size:14px;padding-top:18px}.diploma-section{display:grid;grid-template-columns:.72fr 1.28fr;gap:60px;align-items:center;background:var(--pale);padding:40px;border-radius:5px;scroll-margin-top:105px}.diploma-copy h2{font-size:37px;margin-bottom:15px}.diploma-copy p{font-size:14px;color:var(--muted)}.diploma-copy .honours{font-size:20px;color:var(--green);margin-bottom:10px}.diploma-preview{box-shadow:0 8px 30px #1e352214}.diploma-preview .zoom-button{background:white}.portfolio-download{border-top:1px solid var(--line);margin-top:45px;padding-top:30px;display:flex;justify-content:space-between;align-items:center;gap:35px}.portfolio-download h3{font-size:23px;margin-bottom:9px}.portfolio-download p{font-size:14px;color:var(--muted);margin:0}.prototype-status{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:13px;margin-bottom:25px;padding:15px 18px;background:var(--pale);border:1px solid var(--line);border-radius:4px}.prototype-status>span:last-child{color:var(--muted);margin-left:auto;font-size:12px}.app-overview{display:grid;grid-template-columns:1fr .8fr;gap:80px;margin-block:60px}.app-overview h2{font-size:43px;margin-bottom:22px}.app-overview p{font-size:15px;color:var(--muted)}.app-overview ul{padding:0;list-style:none;margin-top:5px}.app-overview li{border-bottom:1px solid var(--line);padding:15px 0;font-size:14px}.prototype-explore{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:35px;margin-top:35px;border-top:1px solid var(--line)}.prototype-explore h2{font-size:34px;margin-bottom:12px}.prototype-explore p{font-size:14px;color:var(--muted);margin:0}.prototype-preview{scroll-margin-top:110px;border:1px solid var(--line);border-radius:5px;overflow:hidden}.prototype-preview iframe{border:0;display:block;width:100%;height:850px;background:white}.project-return{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-bottom:55px;padding-top:25px;border-top:1px solid var(--line)}.contact-page{display:grid;grid-template-columns:1.3fr .7fr;gap:80px;padding-bottom:130px;padding-top:15px}.email-large{display:flex;gap:18px;align-items:center;font-size:clamp(19px,2.6vw,36px);letter-spacing:-.035em;overflow-wrap:anywhere}.email-large .arrow{width:25px;height:25px;flex-shrink:0}.contact-page .contact-methods{margin-top:25px;font-size:14px;gap:25px;color:var(--muted)}.contact-page .copy-email{color:var(--green);margin-top:22px}.contact-resume{padding-left:35px;border-left:1px solid var(--line)}.contact-resume h2{font-size:29px;line-height:1.15;margin-bottom:15px}.contact-resume p{font-size:14px;color:var(--muted)}.contact-resume .text-link{display:flex;margin-top:22px;width:max-content}
@media(max-width:1000px){.page-heading{gap:45px}.category-navigation{gap:15px}.about-full,.career-block .career-layout,.education-summary{gap:45px}.video-card video{height:480px}.contact-page{gap:40px}.resume-downloads .cv-preview{padding-inline:28px}.diploma-section{gap:30px;padding:30px}.app-overview{gap:40px}.hero-social{max-height:195px}.contact-page .email-large{font-size:25px}}
@media(max-width:760px){.main-nav{gap:4px}.nav-work{flex-wrap:wrap;gap:0;justify-content:space-between}.nav-work>a{flex:1}.work-toggle{width:40px;height:40px}.work-dropdown{position:static;width:100%;margin:5px 0 10px;box-shadow:none;padding:8px}.main-nav .work-dropdown a{font-size:14px;padding:11px!important}.page-opening{padding-top:25px}.breadcrumbs{margin-bottom:32px;font-size:11px}.page-heading{grid-template-columns:1fr;gap:20px;margin-bottom:30px}.page-heading h1{font-size:clamp(43px,8vw,64px)}.page-heading>p{font-size:15px;max-width:580px;margin-top:0}.mini-cta{padding-block:35px 45px;margin-top:35px}.mini-cta h2{font-size:29px}.mini-cta p{font-size:13px}.mini-cta>.button{font-size:13px;white-space:nowrap}.category-grid{gap:30px 22px}.category-caption h2{font-size:23px}.category-caption p{font-size:13px}.category-social{padding:20px;gap:17px}.category-social .video-poster,.category-social .post-poster{border-width:3px}.category-art .card-open{height:33px;width:33px;right:10px;bottom:10px}.play-badge{width:30px;height:30px;font-size:12px}.category-web{padding:14px}.category-rows>a{grid-template-columns:1fr 25px;gap:10px 20px;padding-block:22px}.category-rows h3{font-size:22px}.category-rows p{grid-column:1;grid-row:2;font-size:13px}.category-rows .arrow{grid-column:2;grid-row:1/span 2}.home-about-grid{grid-template-columns:1fr;gap:28px}.home-about{padding-block:50px}.home-about h2{font-size:36px}.home-about .profile{font-size:19px}.home-about .portrait{width:75px;height:75px}.category-navigation{gap:9px 18px;margin-bottom:28px;padding-block:14px;font-size:12px}.category-projects{padding-bottom:20px}.section-jumps{flex-wrap:wrap;gap:14px 24px;font-size:12px;margin-bottom:32px}.social-section .project-subheading>p{font-size:14px;margin-top:15px}.social-section h2{font-size:32px}.video-grid{gap:20px}.video-card video{height:390px}.video-info{padding:17px}.video-info h3{font-size:19px}.video-info p{font-size:12px}.social-section{padding-bottom:45px}.about-full{grid-template-columns:1fr;gap:25px}.about-identity{display:grid;grid-template-columns:85px 1fr;gap:15px}.about-identity .portrait{width:75px;height:75px;grid-row:span 2;margin:0}.about-identity h2{font-size:28px;margin-bottom:0}.about-identity>p{grid-column:2;margin-top:-5px}.about-narrative .profile{font-size:19px}.career-block{padding-block:40px}.career-block .career-layout{grid-template-columns:1fr;gap:30px}.career-block h2{font-size:35px;margin:0}.education-summary{grid-template-columns:1fr;gap:28px;padding-block:40px}.education-summary h2{font-size:33px}.tools-section{padding-top:35px}.resume-downloads{gap:20px;margin-bottom:40px}.resume-downloads .cv-card{padding:18px}.resume-downloads .cv-preview{height:230px;padding-inline:15px}.resume-downloads h2{font-size:23px}.diploma-section{grid-template-columns:1fr;gap:30px;padding:25px}.diploma-copy h2{font-size:33px}.diploma-copy .honours{font-size:18px}.portfolio-download{gap:25px;align-items:start}.portfolio-download .button{font-size:12px}.portfolio-download h3{font-size:21px}.portfolio-download p{font-size:13px}.prototype-status{gap:9px;font-size:12px}.app-overview{grid-template-columns:1fr;gap:20px;margin-block:40px}.app-overview h2{font-size:35px}.app-overview ul{margin:0}.prototype-explore{display:block}.prototype-explore h2{font-size:30px}.prototype-explore .button{margin-top:22px}.prototype-preview iframe{height:900px}.project-return{gap:25px;flex-wrap:wrap;margin-bottom:30px}.project-return .button{font-size:12px}.project-return .text-link{font-size:13px}.contact-page{grid-template-columns:1fr;gap:45px;padding-bottom:65px}.contact-resume{border-left:0;border-top:1px solid var(--line);padding:30px 0 0}.contact-page .email-large{font-size:clamp(21px,5vw,30px)}.footer-top{display:grid;grid-template-columns:1fr 1fr;gap:25px}.footer-top>a:last-child{grid-column:1/-1}.footer-top nav{justify-content:end;flex-wrap:wrap;gap:12px 18px}.v2-footer{padding-top:30px}.hero-browser{top:35px}.hero-social{max-height:175px}}
@media(max-width:480px){.category-grid{grid-template-columns:1fr;gap:32px}.category-caption h2{font-size:25px}.mini-cta{display:block}.mini-cta .button{margin-top:22px}.video-grid{grid-template-columns:1fr}.video-card video{height:480px}.video-info h3{font-size:21px}.resume-downloads{gap:13px}.resume-downloads .cv-card{padding:13px}.resume-downloads .cv-preview{height:165px;padding:12px 10px 0}.resume-downloads h2{font-size:19px}.resume-downloads .cv-card p{font-size:10px}.resume-downloads .download-link{font-size:12px}.portfolio-download{display:block}.portfolio-download .button{margin-top:20px}.footer-top{grid-template-columns:1fr}.footer-top nav{justify-content:start}.footer-top>a:last-child{grid-column:auto}.hero-social{max-height:150px}.category-navigation{gap:8px 15px}.contact-page .contact-methods{flex-direction:column;align-items:start}.email-large .arrow{width:20px}.diploma-section{padding:20px}}
.category-direct-content{padding-top:5px;padding-bottom:35px}.category-direct-content .project-subheading:first-child{margin-top:20px}
