/* Text can grow naturally. pre-line also preserves deliberate editor line breaks. */
body{overflow-wrap:anywhere;word-break:normal}
:is(h1,h2,h3,p,dt,dd,button,.copy-text,.nav-note,.catalog-note>span,.under-grid>span,.tags span,.mobile-cta strong,.mobile-cta span,.message-note,footer>span){white-space:pre-line}
:is(.nav,.nav-right,.catalog-note,.name-row,.tags,.language,.under-grid,.download-banner,.download-action,.download-main,.detail,.detail-list>div,.mobile-cta,footer,footer>div)>*{min-width:0;max-width:100%}
.copy-text{min-width:0}
.intro .eyebrow>span:first-child{flex-shrink:0}
.intro .eyebrow>.copy-text{width:auto;height:auto;border-radius:0;background:none;flex-shrink:1}
.nav{height:auto;min-height:82px;padding-block:18px;flex-wrap:wrap}
.logo{flex-shrink:0;white-space:nowrap}
.nav-note{flex:1 1 160px}
.nav-right{max-width:100%;justify-content:flex-end}
.locale{flex-shrink:0}
.header-download{max-width:22rem}
.profile-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.card,.card-body,.detail-content{min-width:0}
.name-row{flex-wrap:wrap;column-gap:7px;row-gap:2px}
.tags span{max-width:100%}
.photo-status{max-width:calc(100% - 24px)}
.photo-status:before{flex-shrink:0}
.distance{max-width:calc(100% - 28px)}
.catalog-note>span,.plain-link,.download-main{white-space:pre-line}
.button,.invite,.download-main{height:auto;max-width:100%;line-height:1.5}
.under-grid{flex-wrap:wrap}
.download-banner{flex-wrap:wrap}
.banner-copy{flex:1 1 320px}
.download-action{flex-shrink:1;max-width:100%}
.detail{grid-template-columns:minmax(0,.85fr) minmax(0,1fr)}
.detail-content .eyebrow{padding-right:18px}
.detail-list>div{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:14px}
footer,footer>div{flex-wrap:wrap}
.message-dialog>h2,#info-title{padding-inline:8px}
@media(max-width:760px){
 .nav{min-height:68px;padding-block:12px;gap:16px}
 .nav-right{flex:1 1 180px}
 .profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .banner-copy{flex-basis:280px}
}
@media(max-width:480px){
 .nav{min-height:62px;padding-block:12px;gap:12px}
 .nav-right{flex-basis:160px}
 .header-download{flex-shrink:1}
 .detail{grid-template-columns:minmax(0,1fr)}
 .detail-content .eyebrow{padding-right:0}
 .download-action{width:100%}
 .mobile-cta{max-height:40dvh;overflow-y:auto}
 .mobile-cta>div{flex:1 1 45%}
 .mobile-cta>.button{flex:1 1 55%}
 footer{padding-bottom:calc(var(--mobile-cta-height,86px) + 24px)}
}

.gate-mask{
  position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;
  padding:20px;background:#2e18219c;backdrop-filter:blur(5px);
}
.gate-mask.show{display:flex}
.gate-box{
  width:min(360px,100%);background:var(--paper);color:var(--dark);border-radius:15px;
  padding:28px 22px 20px;text-align:center;box-shadow:0 20px 80px #39182755;
}
.gate-box h3{font-size:22px;margin:0 0 10px}
.gate-box p{font-size:15px;line-height:1.6;margin:0 0 18px}
.gate-box button{
  width:100%;min-height:44px;border-radius:7px;background:var(--wine);color:#fff;
  font-size:15px;font-weight:550;
}
#toast{
  position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));
  transform:translateX(-50%) translateY(16px);z-index:90;
  max-width:calc(100% - 32px);padding:12px 18px;border-radius:24px;
  background:#35252be6;color:#fff;font-size:14px;opacity:0;pointer-events:none;
  transition:opacity .2s,transform .2s;
}
#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}
