/* Mobile reading and touch layouts; desktop keeps the approved composition. */
@media(max-width:767px){
 html{scroll-padding-top:80px}
 :is(section,[id]){scroll-margin-top:80px}
 .skip-link:not(:focus-visible),.cc-skip:not(:focus-visible),.ga-skip:not(:focus-visible){position:fixed!important;left:-10000px!important;top:auto!important}
 .site-rail{padding-inline:18px}
 .mobile-menu{max-height:100dvh;overflow-y:auto;padding-bottom:max(24px,env(safe-area-inset-bottom))}
 .mobile-menu-links a{min-height:48px}
 .menu-toggle,[data-menu-close],.dialog-close,.ap-lightbox-close{min-width:44px;min-height:44px}
 .page-shell{padding-inline:12px}
 .page-shell>section,.page-shell>.site-footer{border-radius:22px}
 .page-shell>section>.section-heading{padding:28px 20px 0}
 .page-shell>section>.section-content{padding:24px 20px 28px}
 .section-heading h2{font-size:clamp(28px,8vw,36px);line-height:1.25;letter-spacing:-.025em;overflow-wrap:anywhere}
 .section-kicker{font-size:10px;letter-spacing:.14em}
 :is(#featured,#tutorials,#vibe)>.section-heading .section-description,.section-description{font-size:16px;line-height:1.8;margin-top:16px}
 #hero.ascii-hero{height:auto;min-height:0;padding:24px;display:flex;flex-direction:column;gap:24px}
 #hero .ascii-topline{position:static;gap:8px;flex-wrap:wrap;font-size:9px}
 #hero .ascii-stage{position:relative;inset:auto;width:100%;height:190px;min-height:0;flex:none;display:grid;place-items:center}
 #hero .ascii-fallback{font-size:clamp(38px,11vw,56px);line-height:1.04}
 #hero .ascii-footer{position:static;display:flex;flex-direction:column;align-items:stretch;gap:20px}
 #hero .ascii-copy{max-width:none}
 #hero .ascii-copy h1{font-size:28px;margin:0 0 12px}
 #hero .ascii-copy p{font-size:16px;line-height:1.8}
 #hero .ascii-controls .button{min-height:48px;width:100%;justify-content:space-between}
 .work-series-toolbar{gap:12px;min-height:0;padding-block:12px;align-items:center;flex-wrap:wrap}
 .work-series-toolbar>span{font-size:11px}
 .work-series-all{min-height:44px;padding:12px 18px;font-size:13px}
 :is(#tutorials,#vibe) .work-hero-panel{grid-template-columns:minmax(0,1fr);min-height:0}
 :is(#tutorials,#vibe) .work-hero-media{height:auto;min-height:0;aspect-ratio:16/10;border-width:12px}
 :is(#tutorials,#vibe) .work-hero-copy{padding:24px;gap:18px;min-height:0}
 :is(#tutorials,#vibe) .work-hero-heading h3{font-size:24px;line-height:1.35;overflow-wrap:anywhere}
 :is(#tutorials,#vibe) .work-hero-detail p{font-size:16px;line-height:1.8}
 .work-hero-watch{display:inline-flex;align-items:center;min-height:44px}
 :is(#tutorials,#vibe) .work-hero-controls{display:flex;flex-direction:column;gap:12px;margin-top:16px}
 :is(#tutorials,#vibe) .work-carousel-toggle{min-height:44px;padding:10px 16px;align-self:flex-start}
 :is(#tutorials,#vibe) .work-hero-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:0}
 :is(#tutorials,#vibe) .work-hero-tabs button{min-width:0;min-height:56px;padding:12px 10px;font-size:13px;gap:8px;justify-content:flex-start;text-align:left}
 :is(#tutorials,#vibe) .work-hero-tabs button strong{white-space:normal;overflow-wrap:anywhere}
 #vibe .live-start,#vibe .live-stop{min-height:44px;font-size:12px;padding:10px 14px;bottom:8px;right:8px}
 #featured .ms-evidence-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding:0;scroll-padding:0;background:#f2ede5;scrollbar-width:thin}
 #featured .ms-evidence-item{flex:0 0 88%;min-width:0;scroll-snap-align:start;border:0;border-right:1px solid #d9d5ce}
 #featured .ms-evidence-item .ms-evidence-image{height:190px;aspect-ratio:auto}
 #featured .ms-evidence-item figcaption{padding:18px 20px 22px}
 #featured .ms-evidence-item figcaption p{font-size:15px;line-height:1.75}
 #featured .ms-evidence-summary{padding:24px;gap:18px}
 #featured .ms-evidence-summary h3{font-size:24px;line-height:1.35}
 #featured .ms-evidence-summary p{font-size:15px}
 .ms-case-entry{min-height:44px;display:inline-flex;align-items:center;align-self:flex-start}
 .mobile-swipe-hint{font-size:12px;line-height:1.5;margin:0 0 12px;color:#625f58}
 .restored-work-column{display:flex;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;position:relative;padding-bottom:12px}
 .restored-group-heading{display:none}
 .restored-work-card{flex:0 0 88%;min-width:0;scroll-snap-align:start}
 .restored-work-media{aspect-ratio:16/10;height:auto}
 .restored-work-copy{padding:18px}
 .restored-work-copy h4{font-size:21px;line-height:1.4}
 .restored-work-description{font-size:15px;line-height:1.75}
 .restored-work-groups{gap:24px}
 .comic-practice-card,.mooncake-project{grid-template-columns:minmax(0,1fr)}
 .comic-practice-copy,.mooncake-copy{padding:24px}
 .comic-practice-copy h3{font-size:28px}
 .mooncake-stage,.mooncake-slider,.mooncake-slide{min-height:0;max-height:340px}
 .mooncake-copy h3{font-size:28px;line-height:1.35}
 .mooncake-copy p{font-size:16px;line-height:1.8}
 .mooncake-arrow{min-width:44px;min-height:44px}
 .mooncake-dots button{width:32px;height:44px;position:relative;background:none;border:0;border-radius:0}
 .mooncake-dots button::after{content:'';position:absolute;width:8px;height:8px;border:1px solid #171714;border-radius:50%;inset:0;margin:auto}
 .mooncake-dots button.is-active::after{background:#171714}
 .about-layout{gap:20px}
 .about-card{padding:24px;min-height:0;height:auto}
 .about-identity{gap:16px}
 .about-identity img{width:76px;height:76px}
 .about-identity h3{font-size:26px}
 .about-bio{font-size:16px;line-height:1.8}
 .experience-card{padding:24px}
 #about .experience-details p{font-size:16px;line-height:1.8;margin-bottom:24px}
 #about .experience-details b{font-size:18px}
 .site-footer{padding:32px 24px;min-height:0;height:auto}
 .footer-main{gap:20px}
 .site-footer .footer-title{font-size:clamp(30px,9vw,46px)!important}
 .footer-email{font-size:18px;min-height:44px;display:inline-flex;align-items:center;overflow-wrap:anywhere}
 .footer-meta{gap:12px;flex-wrap:wrap;margin-top:32px}
 .footer-meta a{min-height:44px;display:inline-flex;align-items:center}
 .ms-page .ms-hero{padding:28px 24px;min-height:0}
 .ms-hero h1{font-size:34px;line-height:1.2}
 .ms-hero .ms-lead{font-size:16px;line-height:1.8;margin-block:20px}
 .ms-page .ms-case{padding:28px 24px}
 .ms-case h2{font-size:28px;line-height:1.3;overflow-wrap:anywhere}
 .ms-case h3{font-size:20px;line-height:1.4}
 .ms-page .ms-case p:not(.section-kicker):not(.ms-note){font-size:16px;line-height:1.8;margin-bottom:20px}
 .ms-split,.ms-support,.ms-steps{gap:24px}
 .ms-hero a,.ms-bottom a{min-height:44px;display:inline-flex;align-items:center}
 .gallery-hero{height:auto;min-height:300px;padding:24px;gap:44px}
 .gallery-hero h1{font-size:42px;line-height:1.2}
 .gallery-hero p:not(.section-kicker){color:#e5e3dc;font-size:16px;line-height:1.8}
 .gallery-count{font-size:40px}
 .cc-shell,.ga-shell,.ap-shell{padding-inline:16px}
 .cc-top,.ga-top,.ap-top{gap:12px;padding-block:16px}
 .cc-back,.ga-back,.ap-back{min-height:44px}
 .cc-hero,.ga-hero,.ap-hero{padding:24px;margin-block:20px 24px}
 .cc-hero-title,.ga-hero-title,.ap-hero-title{font-size:34px;line-height:1.2;letter-spacing:-.025em;overflow-wrap:anywhere;text-wrap:balance}
 .cc-hero-desc,.ga-hero-desc,.ap-hero-desc{font-size:16px;line-height:1.8}
 .ap-hero .ap-hero-desc{color:#fff}
 .cc-hero-stats,.ga-hero-stats,.ap-hero-stats{margin-top:24px;padding-top:20px}
 .cc-main,.ga-main{gap:24px}
 .cc-meta,.ga-meta{padding:22px}
 .cc-title,.ga-title{font-size:23px;line-height:1.35}
 .cc-desc,.ga-desc{font-size:16px;line-height:1.8;margin-bottom:16px}
 .cc-cover,.ga-cover{height:auto;aspect-ratio:16/10}
 .cc-cover img,.ga-cover img{width:100%;height:100%;object-fit:cover}
 .cc-cta,.ga-cta{display:inline-flex;align-items:center;min-height:44px}
 .media-dialog,.ap-lightbox{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 24px);padding:48px 8px 12px}
 .media-dialog img,.media-dialog video,.ap-lightbox img{max-width:100%;max-height:calc(100dvh - 140px);object-fit:contain}
}
@media(max-width:360px){
 .page-shell{padding-inline:8px}
 #hero.ascii-hero,.page-shell>section>.section-content{padding-inline:18px}
 .work-series-all{width:100%;justify-content:space-between}
 .about-identity{flex-wrap:wrap}
}
@media(max-width:767px){
 .ap-hero .ap-hero-desc{color:#fff!important}
 .gallery-hero p:not(.section-kicker){color:#e5e3dc!important}
 :is(#tutorials,#vibe) .work-hero-tabs button strong{font-size:13px}
 .ms-home-project>.mobile-swipe-hint{padding:12px 20px;margin:0;font-size:12px;background:#f2ede5}
 .ap-mag-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .ap-mag-grid .ap-mag-card{width:100%;min-width:0;grid-column:auto;grid-row:auto;margin:0}
 .ap-mag-grid .ap-mag-frame{height:auto;aspect-ratio:2/3}
 .ap-mag-grid .ap-mag-frame img{width:100%;height:100%;object-fit:contain}
 .ap-mag-card figcaption,.ap-mag-card .ap-mag-title{font-size:14px}
}
