/* Shared responsive contract: intrinsic sizing, readable controls and PWA safe areas. */
html{box-sizing:border-box;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-block:20px}
*,*::before,*::after{box-sizing:inherit}
body{min-width:0;margin-inline:0}
img,video,canvas,svg{max-inline-size:100%}
img,video{height:auto}
button,input,select,textarea{max-inline-size:100%;min-inline-size:0}
button,summary,[role=button]{touch-action:manipulation}
button{white-space:normal;overflow-wrap:normal;word-break:normal}
input,select,textarea{font-size:max(16px,1em)}
fieldset{min-inline-size:0}
main,section,article,aside,nav,header,footer,form{min-inline-size:0}
:where(.family-actions,.family-account-tools,.planner-learner,.studio-controls,.prompt-top){flex-wrap:wrap}
:where(.family-grid,.planner-fields,.planner-worlds,.studio-layout,.catalog-results,.skill-map,.kp-resource-grid)>*{min-inline-size:0}
:where(h1,h2,h3,h4,p,li,label,summary,a){overflow-wrap:break-word}
:where(pre){max-inline-size:100%;overflow:auto}
.kp-site-header-inner{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.kp-site-footer{padding-bottom:env(safe-area-inset-bottom)}
.kp-site-footer-inner>*{min-width:0}
/* Guided practice buttons have one text node, not a number-and-label pair. */
.studio-page .activity-list button{display:block;grid-template-columns:none;min-height:48px;line-height:1.45;font-weight:700;white-space:normal;overflow-wrap:normal;word-break:normal}
.studio-page .studio-controls>div{min-width:0;flex:0 1 260px}
.studio-page .studio-controls>p{flex:1 1 260px}
.studio-page .studio-library{min-width:0}
.studio-page .studio-controls select{min-height:48px}
.studio-page .practice-stages{gap:8px;border:0}
.studio-page .practice-stages button{min-width:0;min-height:52px;line-height:1.45}
.studio-page .worked-comparison>*{min-width:0}
@media(max-width:1100px){.kp-site-header-inner{gap:18px}.kp-site-account{gap:12px}}
@media(max-width:700px){
 .studio-page .practice-stages{grid-template-columns:1fr}
 .studio-page .practice-stages button{padding:12px 14px}
 .studio-page .practice-stages button span{display:inline;margin-right:8px}
 .studio-page .worked-comparison{grid-template-columns:minmax(0,1fr)}
 .studio-page .studio-controls{display:block}
 .studio-page .studio-controls>p{margin-top:14px}
 .studio-page .activity-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .studio-page .studio-activity{padding:20px 16px}
 .studio-page .studio-layout{gap:20px}
 .studio-page .prompt-top{align-items:flex-start}
 .studio-page .prompt-top button{max-width:none;text-align:left;min-height:44px}
}
@media(max-width:380px){
 .kp-site-header-inner{flex-wrap:wrap;gap:10px;padding-block:12px}
 .kp-site-brand{margin-right:auto}
 .kp-site-account{margin-left:0}
 .kp-site-account .kp-site-primary{font-size:12px;padding:10px}
 .kp-site-mobile{margin-left:auto}
 .kp-site-mobile>nav{right:0;max-width:calc(100vw - 28px)}
 .kp-site-footer-inner{grid-template-columns:minmax(0,1fr);gap:28px}
 .kp-site-footer nav{min-width:0}
 .planner-stat{min-width:0;flex-basis:100px}
 .planner-world,.planner-overview{padding:16px}
 .family-account-tools{gap:12px}
}
@media(display-mode:standalone){body{padding-top:env(safe-area-inset-top)}.kp-site-header{position:relative}.kp-site-footer{padding-bottom:max(16px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(max-width:560px){.studio-page .studio-intro h1{font-size:clamp(26px,7.4vw,40px);line-height:1.13;overflow-wrap:normal}.studio-page .kp-module-intro{padding:24px 20px}.studio-page .kp-module-copy{min-width:0}}
@media(max-width:520px){.kp-site-header-inner{flex-wrap:wrap;gap:10px}.kp-site-account{margin-left:auto}.kp-site-mobile{margin-left:auto}}
@media(max-width:560px){html[data-kp-module=communication] .studio-page .studio-intro{padding:24px 20px}html[data-kp-module=communication] .studio-page .studio-intro h1{font-size:clamp(26px,7.4vw,40px);line-height:1.13;overflow-wrap:normal}}
@media(max-width:560px){html[data-kp-module=communication] .studio-page:has(#view-library[hidden]) .studio-intro{padding:24px 20px}html[data-kp-module=communication] .studio-page:has(#view-library[hidden]) .studio-intro h1{font-size:clamp(26px,7.4vw,40px);line-height:1.13}}
