/* Phone layouts: content has priority over the shared decorative canvas. */
@media screen and (min-width:761px) and (max-width:1024px){
 .capability-layout{grid-template-columns:1fr;gap:32px}
 .capability-cards{grid-template-columns:1fr 1fr}
 .capability-cards p,.career-entry p:not(.eyebrow),.intro-bottom p,.service-list details>div p,.process-steps p,.case-story p,.case-overview>div>p:not(.eyebrow),.intent-copy p{font-size:15px;line-height:1.7}
 .capability-cards article:nth-child(even){transform:none}
 .form-row{grid-template-columns:1fr;gap:0}
 #contact-form input:not([type=radio]),#contact-form textarea,#contact-form select{font-size:16px;min-height:52px}
 .gallery-controls button,.motion-toggle{min-height:44px}
}
@media screen and (max-width:760px){
 html{scroll-padding-top:96px}
 body{--foreground:#171719;--mute:var(--foreground,#171719);font-size:16px}
 body.surface-dark{--mute:#dedee0}
 .wrap{width:calc(100% - 40px)}
 main section{scroll-margin-top:92px}
 .eyebrow,.section-label{font-size:11px;line-height:1.6;letter-spacing:.045em}
 .section-label{flex-wrap:wrap;gap:12px 20px}
 .hero>.section-label>span:first-child,.hero>.section-label>span:last-child{max-width:none;font-size:11px}
 .hero>.section-label{flex-direction:column}
 .hero-copy{padding-top:32px}
 .hero-copy>.eyebrow{font-size:11px;line-height:1.7}
 .hero h1{font-size:clamp(39px,10.8vw,76px)}
 .hero-deck,.intro-bottom p,.service-intro,.service-list details>div p,.process-steps p,.opportunity p:not(.eyebrow),.next-role>div>p,.case-deck,.case-story p,.case-overview>div>p:not(.eyebrow){font-size:16px;line-height:1.7;color:var(--foreground);opacity:1}
 .hero-deck br{display:none}
 .hero-foot{font-size:11px}
 .hero-copy .actions,.actions{gap:16px 24px;flex-wrap:wrap}
 .button{min-height:48px;font-size:14px;padding:14px 20px}
 .text-link{min-height:44px;font-size:14px;align-items:center}
 .menu-toggle{min-width:76px;min-height:44px}
 .mobile-menu{overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(45px,env(safe-area-inset-bottom));gap:22px}
 .mobile-menu a{min-height:48px}
 .personal-intro-label>p+p{font-size:14px}.personal-intro-label span{font-size:12px}
 .personal-intro h2{font-size:clamp(30px,8.2vw,46px);line-height:1.24}
 .personal-intro-links{gap:16px 24px}
 .intro-portrait{max-width:330px}
 .intro h2,.section-heading h2,.service-layout h2,.process h2,.opportunity h2,.next-role h2{font-size:clamp(33px,8.8vw,48px)}
 .perspective-stage{height:100svh;min-height:650px}
 .perspective-top{top:100px;left:20px;right:20px}
 .perspective-top .eyebrow{font-size:10px;max-width:245px}
 .perspective-counter{font-size:11px}
 .perspective-type{top:20%}
 .perspective-cube{top:21%;height:34%}
 .perspective-notes{left:20px;right:20px;bottom:10%;min-height:220px}
 .perspective-notes h2{font-size:32px;margin:14px 0;line-height:1.15}
 .perspective-notes p{font-size:16px;line-height:1.65;opacity:1;max-width:440px}
 .perspective-notes article>span,.perspective-bottom{font-size:10px}
 .perspective-bottom{left:20px;right:20px;bottom:25px}
 .project-grid{grid-template-columns:1fr;gap:40px}
 .project-card:nth-child(even){transform:none}
 .project-caption h3{font-size:27px}.project-caption p{font-size:13px;max-width:90%}
 .selected .project-grid{padding-bottom:0}
 .project-index{width:30px;height:30px;font-size:11px}
 .service-list summary{min-height:60px;gap:12px}
 .service-list summary h3{font-size:24px;line-height:1.25}
 .tags{flex-wrap:wrap}.tags span{font-size:11px;line-height:1.5}
 .process-steps{grid-template-columns:1fr;gap:0}
 .process-steps article{padding:38px 0;min-height:0}
 .process-steps h3{font-size:clamp(32px,8.8vw,42px)}
 .step-number,.step-detail{font-size:12px;line-height:1.65;color:var(--foreground)}
 .process-cube{height:330px}
 .cube-caption{font-size:10px;line-height:1.6}
 .cv-title h1{font-size:clamp(53px,17.8vw,90px)}
 .cv-title h2{font-size:26px;line-height:1.25}
 .cv-title>p:not(.eyebrow){font-size:14px;line-height:1.7}
 .cv-title .cv-intro{font-size:16px!important}
 .print-button{font-size:11px;min-height:44px}
 .cv-facts b{font-size:15px}.cv-facts span{font-size:14px}
 .cv-facts p{display:block}
 .capability-cards{grid-template-columns:1fr;gap:18px}
 .capability-cards article{min-height:0;padding:26px}
 .capability-cards article:nth-child(even){transform:none}
 .capability-cards p{font-size:16px;line-height:1.7;color:var(--foreground);opacity:1}
 .capability-cards h3{font-size:27px}
 .career-entry h3{font-size:27px;line-height:1.25}
 .career-entry p:not(.eyebrow),body[data-page=cv] .career-card p{font-size:15px;line-height:1.75;color:var(--foreground)}
 .career-entry .job-date{font-size:12px!important}
 .career-entry>span{font-size:12px}
 .career-card{padding:24px 20px}
 .education article p{font-size:16px;line-height:1.7;color:var(--foreground)}
 .education article>span:last-child{display:inline-block;font-size:12px}
 .languages{gap:28px}.languages h3{font-size:23px}.languages p{font-size:15px}.languages span{font-size:13px}
 .ink .section-label>span:last-child,.ink .service-intro,.ink .service-list details>div,.intro-bottom{opacity:1}
 .contact-hero h1{font-size:clamp(48px,15vw,78px)}
 .contact-hero>p,.contact-aside>p,.intent-copy p{font-size:16px;line-height:1.7;color:var(--foreground)}
 .contact-hero .section-label>span:first-child,.contact-hero .section-label>span:last-child{max-width:none;font-size:11px}
 .contact-aside>a{font-size:clamp(15px,4.5vw,25px);min-height:44px;display:flex;align-items:center;overflow-wrap:anywhere}
 .contact-layout{gap:44px}
 .intent-options{gap:7px}
 .intent-options label>span{padding:16px 10px;font-size:15px;min-height:116px}
 .intent-options i{font-size:10px;margin-bottom:16px}
 .intent-options small{font-size:11px;line-height:1.4}
 .intent-copy{min-height:0;margin:32px 0}
 .intent-copy h2{font-size:clamp(27px,7.5vw,36px)}
 .form-row{grid-template-columns:1fr;gap:0}
 .contact-panel form>label,.form-row>label,legend{font-size:14px;line-height:1.5}
 #contact-form input:not([type=radio]),#contact-form textarea,#contact-form select{font-size:16px;min-height:52px;color:var(--foreground);border-color:#ffffff60}
 #contact-form input::placeholder,#contact-form textarea::placeholder{color:#b0b0b6;opacity:1}
 #contact-form textarea{min-height:140px}
 #contact-form button[type=submit]{width:100%;justify-content:space-between}
 .form-note,.contact-send-status{font-size:13px;line-height:1.65}
 .contact-security{overflow:visible}
 .gallery-stage{min-height:650px}
 .gallery-head{padding-top:110px}.gallery-head .eyebrow{font-size:10px}
 .gallery-head h1{font-size:clamp(35px,9.8vw,64px)}
 .gallery-info{padding-bottom:42px;gap:20px}
 .selected-project h2{font-size:32px}.selected-project>p{font-size:13px;line-height:1.55}
 .gallery-controls>span{font-size:11px}
 .gallery-controls button{width:46px;height:46px;min-height:46px;font-size:22px}
 .gallery-controls [data-project-count]{font-size:12px;min-width:64px;text-align:center}
 .filters button{min-height:44px;font-size:12px}
 .work-index>summary{min-height:48px;font-size:16px}
 .case-hero h1{display:block;font-size:clamp(40px,10vw,68px);overflow-wrap:anywhere;line-height:1.12}
 .case-hero h1>span:last-child:not(:first-child){display:block;margin-top:20px;font-size:22px}
 .case-hero>.text-link,.case-hero .section-label{font-size:11px}
 .case-overview .eyebrow{font-size:11px}
 .case-gallery figcaption{font-size:12px;line-height:1.6}
 .case-story h3{line-height:1.25}
 .closing-bottom{font-size:14px;line-height:1.7}
 .closing-link .closing-arrow{position:static;display:grid;width:48px;height:48px;margin-top:22px;font-size:26px}
 .closing-bottom a{overflow-wrap:anywhere;min-height:44px;display:flex;align-items:center}
 .site-footer{gap:18px 24px;padding-bottom:max(30px,env(safe-area-inset-bottom))}
 .site-footer>div{display:flex;flex-wrap:wrap;gap:20px;margin-left:0;width:100%}
 .site-footer a,.motion-toggle{min-height:44px;display:inline-flex;align-items:center;font-size:14px}
 .site-footer .footer-name{display:block;font-size:19px}
 .footer-name span,.site-footer>span{font-size:12px;line-height:1.6}
 .motion-toggle{margin-left:0}.back-top{width:44px;height:44px;justify-content:center;margin-left:auto}
 .no-motion .perspective-notes,.motion-paused .perspective-notes{min-height:0}
}
@media screen and (max-width:360px){
 .wrap{width:calc(100% - 32px)}
 .intent-options label>span{font-size:14px;padding:14px 8px}.intent-options small{font-size:10px}
 .hero-copy .actions{gap:12px 18px}.hero-copy .actions .button{gap:15px}
 .contact-aside>a{font-size:15px}
 .perspective-notes h2{font-size:29px}.perspective-notes p{font-size:15px}
}
@media screen and (max-width:760px) and (max-height:600px){
 .mobile-menu{justify-content:flex-start;padding-top:100px;gap:10px}
 .mobile-menu a{font-size:32px}
 .mobile-menu:after{display:none}
}
/* Short / landscape screens must not trap copy below a pinned viewport. */
@media screen and (max-width:1000px) and (max-height:600px){
 .perspective-scene{min-height:0}
 .perspective-stage{height:auto;min-height:0;padding:100px 24px 45px}
 .perspective-top{position:relative;inset:auto}
 .perspective-type{display:none}
 .perspective-cube{position:relative;inset:auto;width:100%;height:230px}
 .perspective-notes{position:relative;inset:auto;width:100%;min-height:0;display:grid;gap:40px}
 .perspective-notes article{position:relative;inset:auto;visibility:visible!important;opacity:1!important;transform:none!important}
 .perspective-bottom{position:relative;inset:auto;margin-top:40px}
 .gallery-stage{min-height:100svh;height:100svh}
 .gallery-head{padding-top:88px}
 .gallery-head h1{font-size:30px;margin-top:8px}
 .gallery-head .eyebrow{font-size:9px}
 .gallery-scene{top:155px;bottom:40px;right:52%;left:0;overflow:hidden}
 .gallery-info{left:52%;right:20px;bottom:30px;width:auto;max-width:none;padding:0;gap:14px;align-items:stretch}
 .selected-project h2{font-size:25px}.selected-project>p{font-size:12px}
 .gallery-controls{flex-wrap:wrap;gap:10px}
 .gallery-controls>span{display:none}
 .gallery-track{margin-bottom:12px}
}
