/* Shared safeguards for long site copy across every public template. */
:where(.template-classic,.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum,.template-next){overflow-x:hidden}
:where(.template-classic,.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum) h1,:where(.template-classic,.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum) h2,:where(.template-classic,.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum) h3,:where(.template-classic,.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum) p,:where(.template-classic,.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum) span{overflow-wrap:break-word}
:where(.template-classic,.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum) h1,:where(.template-classic,.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum) h2{text-wrap:balance;word-break:normal}
:where(.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum) [class$="-nav"]>:first-child{min-width:0}
:where(.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum) [class$="-brand"]{min-width:0;max-width:min(42vw,360px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:where(.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum) [class*="plan-grid"] article,:where(.template-aurora,.template-nebula,.template-horizon,.template-obsidian,.template-pop,.template-spectrum) [class*="plan-list"] article{min-width:0}
@media(max-width:980px){
  .aurora-nav,.nebula-nav,.horizon-nav,.obsidian-nav,.pop-nav,.spectrum-nav{width:calc(100% - 36px);height:auto;min-height:72px;padding-top:12px;padding-bottom:12px;gap:14px}
  .aurora-nav nav,.nebula-nav nav,.horizon-nav nav,.obsidian-nav nav,.pop-nav nav,.spectrum-nav nav{gap:14px;flex-wrap:wrap;justify-content:center}
  .aurora-register,.nebula-join,.horizon-join,.obsidian-nav .obsidian-button,.pop-main-button,.spectrum-action{flex:none;white-space:nowrap}
  .aurora-section-head h2{white-space:normal}
}
/* At tablet widths a full nav is what squeezes the brand and hero copy. */
@media(max-width:1120px){
  .template-classic .nav nav>a:not(.nav-button),.aurora-nav nav,.nebula-nav nav,.horizon-nav nav,.obsidian-nav nav,.pop-nav nav,.spectrum-nav nav{display:none}
  .template-classic .nav{width:calc(100% - 36px);padding:0;gap:14px}
  .template-classic .brand{min-width:0;max-width:calc(100vw - 150px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .template-classic .hero-text{overflow-wrap:normal!important;word-break:normal!important}
  .aurora-nav,.nebula-nav,.horizon-nav,.obsidian-nav,.pop-nav,.spectrum-nav{justify-content:space-between}
  .aurora-logo,.nebula-brand,.horizon-brand,.obsidian-brand,.pop-brand,.spectrum-brand{max-width:calc(100vw - 180px);flex:1 1 auto}
  .aurora-lead,.nebula-copy>p:not(.nebula-overline),.horizon-lead,.obsidian-hero-copy>span,.pop-hero>span,.spectrum-hero-copy>span{max-width:min(100%,680px)!important;overflow-wrap:normal!important;word-break:normal!important;white-space:normal!important}
}
/* Do not compress hero copy beside a decorative card at tablet widths. */
@media(min-width:701px) and (max-width:1080px){
  .aurora-hero,.nebula-hero,.horizon-hero,.obsidian-hero,.spectrum-hero{grid-template-columns:minmax(0,1fr)!important;min-height:auto;gap:34px}
  .aurora-hero,.nebula-hero,.horizon-hero,.obsidian-hero{padding-top:78px;padding-bottom:66px}
  .aurora-hero-copy,.nebula-copy,.horizon-copy,.obsidian-hero-copy,.spectrum-hero-copy{width:min(100%,760px)}
  .aurora-hero h1,.nebula-copy h1,.horizon-copy h1,.obsidian-hero-copy h1,.spectrum-hero h1{max-width:760px;font-size:clamp(42px,6.2vw,60px);line-height:1.12;letter-spacing:-2px}
  .aurora-art,.horizon-visual{min-height:310px;justify-self:start}
  .nebula-signal,.obsidian-status,.spectrum-status{justify-self:start;max-width:460px}
  .spectrum-hero{padding-top:82px;padding-bottom:70px}
}
@media(min-width:1081px) and (max-width:1120px){
  .aurora-hero,.nebula-hero,.horizon-hero,.obsidian-hero,.spectrum-hero{grid-template-columns:minmax(0,1fr)!important;min-height:auto;gap:34px}
  .aurora-hero,.nebula-hero,.horizon-hero,.obsidian-hero{padding-top:78px;padding-bottom:66px}
  .aurora-hero-copy,.nebula-copy,.horizon-copy,.obsidian-hero-copy,.spectrum-hero-copy{width:min(100%,760px)}
  .aurora-hero h1,.nebula-copy h1,.horizon-copy h1,.obsidian-hero-copy h1,.spectrum-hero h1{max-width:760px;font-size:clamp(43px,5.6vw,60px);line-height:1.12;letter-spacing:-2px}
  .aurora-art,.horizon-visual{min-height:310px;justify-self:start}
  .nebula-signal,.obsidian-status,.spectrum-status{justify-self:start;max-width:460px}
}
/* First-screen copy is tuned per template, so their own CSS wins over base rules. */
.template-aurora .aurora-hero h1,.template-nebula .nebula-copy h1,.template-horizon .horizon-copy h1,.template-obsidian .obsidian-hero-copy h1,.template-pop .pop-hero h1,.template-spectrum .spectrum-hero h1{overflow-wrap:break-word;word-break:normal;text-wrap:balance}
/* Subtitle copy should wrap by natural Chinese line breaks, never character by character. */
.template-aurora .aurora-lead,.template-nebula .nebula-copy>p:not(.nebula-overline),.template-horizon .horizon-lead,.template-obsidian .obsidian-hero-copy>span,.template-pop .pop-hero>span,.template-spectrum .spectrum-hero-copy>span{overflow-wrap:normal;word-break:normal;text-wrap:pretty}
@media(max-width:700px){
  .aurora-nav nav,.nebula-nav nav,.horizon-nav nav,.obsidian-nav nav,.pop-nav nav,.spectrum-nav nav{display:none}
  .aurora-nav,.nebula-nav,.horizon-nav,.obsidian-nav,.pop-nav,.spectrum-nav{width:calc(100% - 28px);min-height:66px;padding-top:8px;padding-bottom:8px}
  .aurora-logo,.nebula-brand,.horizon-brand,.obsidian-brand,.pop-brand,.spectrum-brand{max-width:calc(100vw - 130px);font-size:16px;line-height:1.2}
  .aurora-register,.nebula-join,.horizon-join,.obsidian-nav .obsidian-button,.pop-main-button,.spectrum-action{padding:9px 11px;font-size:12px;box-shadow:none}
  .aurora-hero,.nebula-hero,.horizon-hero,.obsidian-hero,.spectrum-hero{min-height:auto;padding:70px 20px 56px;gap:32px}
  .aurora-hero h1,.nebula-copy h1,.horizon-copy h1,.obsidian-hero-copy h1,.pop-hero h1,.spectrum-hero h1{font-size:clamp(34px,10vw,48px);letter-spacing:-1.8px}
  .aurora-lead,.nebula-copy>p,.horizon-lead,.obsidian-hero-copy>span,.pop-hero>span,.spectrum-hero-copy>span{font-size:15px;line-height:1.75}
  .aurora-stats,.nebula-metrics,.horizon-metrics,.obsidian-metrics,.pop-metrics,.spectrum-metrics{width:calc(100% - 32px)}
  .aurora-stats,.nebula-metrics,.horizon-metrics,.obsidian-metrics,.pop-metrics,.spectrum-metrics{grid-template-columns:1fr!important;gap:0}
  .aurora-stats div,.nebula-metrics div,.horizon-metrics div,.obsidian-metrics div,.pop-metrics div,.spectrum-metrics div{min-width:0;padding:16px 0!important;border-right:0!important;border-bottom:1px solid rgba(128,140,160,.22)}
  .aurora-story,.nebula-story,.horizon-story,.obsidian-story,.pop-story,.spectrum-story{width:calc(100% - 32px);padding:76px 0;gap:38px}
  .aurora-plan-list,.nebula-plan-grid,.horizon-plan-grid,.obsidian-plan-grid,.pop-plan-grid,.spectrum-plan-grid{grid-template-columns:1fr!important;gap:14px!important;border:0}
  .aurora-plan,.nebula-plan-grid article,.horizon-plan-grid article,.obsidian-plan-grid article,.pop-plan-grid article,.spectrum-plan-grid article{min-height:0;border-right:inherit}
  .aurora-footer-inner,.nebula-footer-main,.horizon-footer-main,.obsidian-footer-top,.pop-footer-top,.spectrum-footer-top{grid-template-columns:1fr!important;gap:28px}
  .aurora-footer-bottom,.nebula-footer-bottom,.horizon-footer-bottom{flex-wrap:wrap;gap:10px}
  .nebula-notice,.horizon-notice,.obsidian-notice,.pop-notice,.spectrum-notice{padding:8px 14px;line-height:1.45}
  .nebula-notice p{white-space:normal}
  .site-contact-footer{overflow-wrap:anywhere}
}
@media(max-width:420px){
  .aurora-register b,.nebula-join b,.horizon-join b,.obsidian-nav .obsidian-button b,.spectrum-action b{display:none}
  .aurora-hero h1,.nebula-copy h1,.horizon-copy h1,.obsidian-hero-copy h1,.pop-hero h1,.spectrum-hero h1{font-size:clamp(32px,9.5vw,40px);line-height:1.15;letter-spacing:-1.2px}
  .aurora-actions,.nebula-hero-actions,.horizon-actions,.obsidian-hero-copy>div,.pop-hero>div:last-of-type,.spectrum-hero-copy>div{gap:10px}
}
