/* Shared readable type scale for CSS viewports, not physical monitor inches.
   16px base on phones/laptops; up to 28px at native 4K. rem keeps zoom accessible. */
html{font-size:clamp(16px,calc(10px + .47vw),28px)}
:root{--text-small:.875rem;--text-body:1rem;--text-lead:1.125rem}
body{font-weight:500}
.entrance-nav-item{font-size:1rem;font-weight:600;min-width:6rem;min-height:2.875rem;padding:.65rem 1.5rem;letter-spacing:.08em}
.entrance-nav{padding:.3rem;gap:.25rem;border-radius:1rem}
.entrance-nav-item{border-radius:.7rem}
.entrance-script{font-size:clamp(22px,1.65vw,52px)}
.entrance-caption h1{font-size:clamp(38px,3.1vw,112px);font-weight:700}
.entrance-intro h2{font-weight:700;font-size:clamp(36px,3.35vw,112px)}
.entrance-intro p{font-size:1rem;font-weight:500;color:#626262}
.entrance-scroll{font-size:1rem;font-weight:600;bottom:max(1.1rem,env(safe-area-inset-bottom))}
.entrance-scroll svg{width:1.5rem;height:1.3rem}
.entrance-tile-label{font-size:clamp(14px,1.15vw,36px);font-weight:600}
.shell{width:min(78rem,calc(100% - 3.5rem))}
.project-stack{width:min(58rem,76vw);--tab-height:clamp(42px,2.8vw,88px)}
.project-body{min-height:clamp(310px,21vw,600px);gap:1rem;padding:.85rem}
.project-copy h2{font-size:clamp(30px,2.6vw,76px);font-weight:700;line-height:1.3}
.project-tab{font-size:var(--text-small);font-weight:600;letter-spacing:.03em}
.project-date{font-size:.8125rem;font-weight:500}
.project-lead{font-size:var(--text-lead);font-weight:600;line-height:1.65}
.project-description{font-size:var(--text-body);font-weight:500;line-height:1.8;opacity:1}
.project-cta{font-size:1rem;font-weight:600;padding:.65rem 1.1rem;min-height:2.75rem}
.project-actions{margin-top:1.1rem}
.seg-sub,.cases-sub{font-weight:500;line-height:1.8}
.type-card .t-num{font-size:.8125rem}
.type-card strong{font-weight:700;line-height:1.4}
.type-card small{font-size:1rem;font-weight:500}
.cases-page .activity-filter,.cases-page .pager-btn{font-size:1rem;font-weight:600;min-height:2.75rem;height:auto}
.ac-cat,.ac-featured,.ac-tags span{font-size:.875rem;letter-spacing:.04em}
.ac-poster h4{font-size:1.3rem;font-weight:700;line-height:1.5}
.ac-link{font-size:1rem;min-height:2.75rem}
.about-hero h1{font-size:clamp(36px,3.2vw,90px)}
.about-social-caption{font-size:1.35rem;font-weight:600}
.about-social-links span{font-size:1rem;font-weight:600}
.about-social-links{gap:1.5rem}
.brand-topline,.brand-bottom{font-size:var(--text-small);font-weight:500}
.brand-message h2{font-size:clamp(26px,2.7vw,78px);font-weight:700}
.brand-message p{font-size:1rem;font-weight:500;letter-spacing:.1em;color:#b9cdd9}
#finale .shell{width:min(78rem,calc(100% - 4rem))}
#finale.interactive-finale{padding:6rem 0 2.5rem;min-height:0}
#finale .statement-line{font-size:clamp(30px,3.8vw,100px);font-weight:700}
#finale .finale-actions{gap:1rem;margin-top:2.5rem}
#finale .btn-contact{padding:1rem 1.4rem;min-width:18rem}
#finale .btn-contact .ct small{font-size:.875rem;font-weight:500}
#finale .btn-contact .ct strong{font-size:1.4rem;font-weight:700}
#finale .btn-contact .ci{width:2.8rem;height:2.8rem}
#finale .btn-contact .ci svg{width:1.5rem;height:1.5rem}
#finale .foot-mark{font-size:1.25rem;font-weight:700}
#finale .foot-tag{font-size:.875rem;font-weight:500;max-width:none;line-height:1.8}
#finale .footer-legal{font-size:.875rem;font-weight:500;max-width:40rem;color:#c0cfdf;line-height:1.9}
#finale .footer-legal .copy,#finale .footer-records{font:inherit}
#finale .finale-foot{gap:2rem;flex-wrap:wrap;margin-top:4.5rem;padding-top:2rem}
#finale .foot-logo{width:6rem;height:3.65rem}
@media(min-width:2200px){.about-hero{padding-top:8rem;padding-bottom:3rem}.social-fan{--card-width:clamp(205px,10vw,340px);--spread:clamp(82px,4.2vw,145px);width:min(64rem,95%);margin-top:2rem;height:calc(var(--card-width)*1.77 + 100px)}.about-icon{width:2rem;height:2rem}.brand-art{width:min(76vw,60rem)}}
@media(max-width:900px){.project-stack{width:calc(100% - 40px)}.project-body{min-height:300px}.project-lead{font-size:1rem}.project-description{font-size:.9375rem}.brand-topline,.brand-bottom{font-size:.8125rem}.brand-topline{letter-spacing:.04em}.brand-steps{gap:12px}}
@media(max-width:600px){
 .entrance-nav-item{min-width:4.6rem;padding:.65rem 1rem;font-size:.9375rem}
 .entrance-caption h1{font-size:36px}.entrance-caption .entrance-script{font-size:22px}
 .entrance-intro p{font-size:.875rem}.entrance-scroll{font-size:.875rem}
 .entrance-tile-label{font-size:clamp(8px,2.2vw,13px)}
 .project-stack{width:calc(100% - 32px);--tab-height:42px}.project-body{grid-template-columns:1fr;min-height:0;padding:14px;gap:18px}.project-copy{min-height:0}.project-copy h2{font-size:32px}.project-tab{font-size:.8125rem}.project-preview{aspect-ratio:4/3}
 .shell{width:calc(100% - 32px)}.type-card{padding:20px 14px}.type-card small{font-size:.875rem}.type-card strong{font-size:1.125rem}
 .cases-page .activity-filter{font-size:.875rem}.ac-cat,.ac-featured{font-size:.8125rem}
 .about-social-caption{font-size:1.125rem}.about-social-links{gap:12px}.about-social-links span{font-size:.875rem}
 .brand-topline{font-size:.75rem}.brand-topline span{letter-spacing:0}.brand-bottom{font-size:.75rem}.brand-scroll{font-size:.75rem}.brand-message p{font-size:.875rem;letter-spacing:.02em}.brand-message h2{font-size:24px}
 #finale .shell{width:calc(100% - 40px)}#finale.interactive-finale{padding:4rem 0 2rem}#finale .statement-line{font-size:clamp(26px,6.5vw,36px)}
 #finale .finale-actions{max-width:100%}#finale .btn-contact{min-width:0;width:100%;padding:1rem}#finale .btn-contact .ct strong{font-size:1.3rem}#finale .btn-contact .ct small{font-size:.8125rem}
 #finale .foot-logo{width:4.5rem;height:2.75rem}#finale .foot-mark{font-size:1.0625rem}#finale .foot-tag{font-size:.8125rem}#finale .footer-legal{font-size:.8125rem}#finale .finale-foot{gap:1.5rem;margin-top:3rem}
}
.brand-steps{font-size:inherit}
@media(max-width:600px){#finale.interactive-finale{padding-bottom:5.5rem}}
/* Leave a clear resting area beneath legal text for the fixed back-to-top seal. */
#finale.interactive-finale{padding-bottom:5.5rem}
.seg-head{max-width:60rem;margin-bottom:3.5rem}
.type-grid{gap:1rem}
@media(min-width:2200px){.type-card{padding:1.6rem 1.4rem}.ac-poster{min-height:16rem}.ac-body{padding:1.2rem 1.4rem}.cases-page .activity-filters{gap:.65rem}.cases-page .activity-filter{padding:.65rem 1.1rem}}
