/* Isolated to the selected homepage hero; shared header/menu styles stay intact. */
.hero.portal-hero{isolation:isolate;background:#071d16;min-height:780px}
.portal-viewport{position:absolute;inset:0;overflow:hidden;container-type:size;pointer-events:none}
.portal-stage{position:absolute;left:50%;top:50%;width:max(100cqw,177.176cqh);aspect-ratio:1669/942;transform:translate(-50%,-50%);isolation:isolate}
.portal-plate{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.hero.portal-hero:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(2,17,12,.24),transparent 52%),linear-gradient(0deg,rgba(2,17,12,.58),transparent 21%)}
.hero.portal-hero .hero-content{z-index:2;padding-top:160px;animation:none}
.hero.portal-hero h1{font-size:clamp(52px,5.75vw,96px)}
.hero.portal-hero .hero-description{max-width:29em;font-size:16px;line-height:2;color:#f0f3e9;text-shadow:0 1px 8px #061b16}
.hero.portal-hero .hero-bottom{z-index:2}
/* 播放/暂停动效：纯文字，无外框无底色；自动外边距放在它身上，使其紧接右侧“AI 创作概念视觉，非学员作品”同排 */
.portal-motion-toggle{background:none;border:0;padding:0;color:#e6efdd;min-height:44px;white-space:nowrap;font-size:12px;text-decoration:underline;text-underline-offset:6px;text-decoration-color:rgba(230,239,221,.5)}
.portal-motion-toggle:hover{color:#fff;text-decoration-color:currentColor}
.hero.portal-hero .hero-bottom .portal-motion-toggle{margin-left:auto}
.hero.portal-hero .hero-bottom .portal-motion-toggle[hidden]+span{margin-left:auto}
.hero.portal-hero .hero-bottom span:nth-of-type(2){margin-left:0}
@media(min-width:961px) and (max-width:1100px){.hero.portal-hero h1{font-size:56px}.hero.portal-hero .hero-description{font-size:14px;max-width:29em}.hero.portal-hero .hero-kicker{font-size:14px}}
@media(max-width:960px){
 .hero.portal-hero{height:auto;min-height:980px;max-height:none;display:block;padding-top:450px;padding-bottom:130px}
 .portal-viewport{height:550px}
 .portal-stage{left:50%;top:50%;width:max(160cqw,150cqh);transform:translate(-68.6%,-50%)}
 .hero.portal-hero:after{background:linear-gradient(0deg,#071d16 0%,#071d16 42%,transparent 61%)}
 .hero.portal-hero .hero-content{padding-top:0}
 .hero.portal-hero .hero-kicker{font-size:13px;margin-bottom:17px}
 .hero.portal-hero h1{font-size:clamp(38px,10.8vw,64px);line-height:1.25;margin-bottom:20px}
 .hero.portal-hero .hero-description{font-size:14px;line-height:1.95;max-width:none;margin-bottom:24px}
 .hero.portal-hero .hero-bottom{bottom:20px;gap:6px 14px;flex-wrap:wrap;justify-content:flex-start}
 .hero.portal-hero .hero-bottom span:nth-of-type(2){margin-left:0;font-size:11px;max-width:none}
 .hero.portal-hero .hero-bottom a{font-size:12px;margin-left:auto}
 .hero.portal-hero .hero-bottom .portal-motion-toggle{margin-left:0}
 .hero.portal-hero .hero-bottom span:first-child{font-size:12px}
 .hero.portal-hero .actions{gap:12px}.hero.portal-hero .button{min-width:0;padding:14px 18px;font-size:14px}
}
/* 窄屏底部行按顶对齐，44px 高的按钮会把文字压到下方，改为随行高 */
@media(max-width:760px){.portal-motion-toggle{min-height:0}}
@media(prefers-reduced-motion:reduce){.portal-card{will-change:auto}.hero.portal-hero .hero-content{animation:none}}


/* All dynamic artwork uses the same source coordinate system as the scene. */
.ribbon-perspective,.ribbon-world{position:absolute;inset:0}
.ribbon-card{position:absolute;left:0;top:0;width:100%;height:auto;aspect-ratio:3/2;transform-origin:0 0;will-change:transform,opacity}
.ribbon-card img{display:block;width:100%;height:100%;max-width:none}
@media(max-width:960px){
 .hero.portal-hero{padding-top:525px;min-height:1060px}
 .hero.portal-hero:after{background:linear-gradient(0deg,#071d16 0%,#071d16 45%,transparent 54%)}
 .portal-stage{width:max(180cqw,177.176cqh);transform:translate(-67.2%,-50%)}

}
@media(prefers-reduced-motion:reduce){.ribbon-card{will-change:auto}}



@media(max-width:960px){.portal-stage:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:28px;background:linear-gradient(transparent,#071d16);pointer-events:none}}

@media(min-width:500px) and (max-width:960px){.portal-viewport{height:101.534vw}.portal-stage{width:180cqw}.hero.portal-hero{padding-top:calc(101.534vw + 24px)}}

@media(max-width:960px){.hero.portal-hero:after{background:none}}

@media(min-width:961px){.hero.portal-hero>.wrap{width:92%;max-width:none}}

@media(min-width:1101px){.hero.portal-hero .hero-description{font-size:18px}.hero.portal-hero .hero-kicker{font-size:18px}}
