/* 星文绘梦 品宣网站样式 */
:root{
  --bg: #060e20; /* 更深的背景 */
  --text: #f6fbff; /* 更亮的文字 */
  --muted: #bcd0ef; /* 说明文字略提亮 */
  --primary: #2f7dff;
  --primary-2: #62c8ff;
  --card: #0e1d36;
  --border: rgba(140,200,255,.22);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter','PingFang SC','Hiragino Sans GB',-apple-system,system-ui,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg);} 
/* 暗色主题微光纹理 */
body::before{content:"";position:fixed;inset:-10% -10% auto -10%;height:40vh;z-index:-2;background:radial-gradient(1200px 400px at 20% 0%, rgba(98,200,255,.16), rgba(10,23,48,0)), radial-gradient(1200px 400px at 80% -10%, rgba(47,125,255,.14), rgba(10,23,48,0));filter:blur(20px);} 

/* 粒子背景容器：固定置底，不影响交互 */
#particles-js{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none}

@keyframes ambientShift{
  0%{ transform:translate3d(0,0,0) scale(1); filter:hue-rotate(0deg) blur(20px); }
  50%{ transform:translate3d(0,-8px,0) scale(1.02); filter:hue-rotate(4deg) blur(22px); }
  100%{ transform:translate3d(0,-12px,0) scale(1.03); filter:hue-rotate(6deg) blur(24px); }
}

@media (prefers-reduced-motion: reduce){
  body::before{ animation:none; }
}

.container{max-width:1100px;margin:0 auto;padding:0 20px}

/* Header */
.site-header{position:sticky;top:0;background:rgba(10,23,48,0.78);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border);z-index:50}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:44px}
.header-cta{margin-left:16px}
.header-cta .btn.primary{background:#38BDF8;color:#0F172A}
.logo{display:flex;align-items:center;gap:10px;font-weight:700}
.logo-mark{display:inline-flex;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;background:linear-gradient(135deg,#4EA3FF 0%,#6BD3FF 100%);color:#fff}
.logo-text{letter-spacing:0.5px}
.logo .logo-r{font-size:.6em;vertical-align:super;margin-left:4px;color:#aee0ff}
.nav a{color:var(--text);text-decoration:none;margin-left:20px;font-weight:600}
.nav a:hover{color:var(--primary)}

/* 顶部导航移动端适配 */
.nav-toggle{display:none}
.header-icon{display:none}
@media (max-width:640px){
  .header-inner{position:relative;flex-wrap:nowrap;height:48px;padding:4px 10px}
  /* 保持第一行：左logo，右菜单按钮；第二行才是菜单 */
  .logo{order:1}
  .nav-toggle{display:none}
  .site-header .nav{display:none !important}
  .site-header.nav-open .nav{transform:translateX(0);opacity:1}
  .header-icon{display:inline-flex !important;align-items:center;justify-content:center;position:absolute;right:16px;top:50%;transform:translateY(-50%)}
  .header-icon .icon{width:22px;height:22px;display:block}
  .nav{overflow-y:auto}
  .nav a{margin:0;padding:12px 14px;border:1px solid rgba(120,180,255,.36);border-radius:12px;background:rgba(255,255,255,.12);color:#eaf3ff;box-shadow:0 8px 22px rgba(13,70,150,.18)}
  .nav a:hover{background:linear-gradient(135deg,#2f7dff,#62c8ff);color:#fff;border-color:transparent;box-shadow:0 12px 28px rgba(13,70,150,.24)}
}
@media (max-width:640px){
  .site-header{background:rgba(10,23,48,0.78);backdrop-filter:saturate(180%) blur(10px)}
  .portfolio .work-card{backdrop-filter:none}
}

/* 动态窄屏模式（检测到导航折行或溢出时启用） */
body.narrow .header-inner{position:relative;flex-wrap:nowrap;height:48px;padding:4px 10px}
body.narrow .site-header .nav{display:none !important}
body.narrow .header-icon{display:inline-flex !important;align-items:center;justify-content:center;position:absolute;right:16px;top:50%;transform:translateY(-50%)}
body.narrow .header-icon .icon{width:22px;height:22px;display:block}
body.narrow .site-header{background:rgba(10,23,48,0.78);backdrop-filter:saturate(180%) blur(10px)}
body.menu-open{overflow:hidden}
.menu-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.38);z-index:900;opacity:0;transition:opacity .2s ease;pointer-events:none}
.menu-backdrop.show{opacity:1;pointer-events:auto}

.sidepanel{position:fixed;top:var(--header-h,65px);right:0;width:60vw;height:calc(100vh - var(--header-h,65px));max-width:540px;background:linear-gradient(135deg,#0f2342,#112a4f);border-left:1px solid var(--border);box-shadow:-16px 0 40px rgba(13,70,150,.25);transform:translateX(100%);opacity:0;transition:transform .32s cubic-bezier(.22,.84,.36,1), opacity .22s ease;z-index:1100;padding:14px;display:flex;flex-direction:column;gap:12px;backdrop-filter:saturate(140%) blur(8px)}
.sidepanel.open{transform:translateX(0);opacity:1}
.sidepanel .panel-nav{display:flex;flex-direction:column;gap:12px}
.sidepanel .panel-nav a{margin:0;padding:12px 14px;border:1px solid rgba(120,180,255,.36);border-radius:12px;background:rgba(255,255,255,.10);color:#eaf3ff;text-decoration:none;font-weight:600;box-shadow:0 8px 22px rgba(13,70,150,.18)}
.sidepanel .panel-nav a:hover{background:linear-gradient(135deg,#2f7dff,#62c8ff);color:#fff;border-color:transparent;box-shadow:0 12px 28px rgba(13,70,150,.24)}
.sidepanel-backdrop{position:fixed;top:var(--header-h,65px);left:0;right:0;bottom:0;background:rgba(0,0,0,.06);backdrop-filter:blur(4px) saturate(120%);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:1005}
.sidepanel-backdrop.show{opacity:1;pointer-events:auto}


/* Hero */
.hero{position:relative;padding:72px 0 40px;min-height:clamp(320px,40vh,560px);background:
  linear-gradient(180deg, rgba(10,36,74,.15) 0%, rgba(255,255,255,0) 40%),
  linear-gradient(0deg, rgba(10,36,74,.25), rgba(10,36,74,.25)),
  url('assets/images/posters/banner.jpg') center/cover no-repeat;
}
.hero-inner{position:relative;z-index:1}
/* Hero 背景轻量微动光晕（增强可见性，仍保持轻量） */
.hero::before{
  content:"";position:absolute;inset:-8% -8% -8% -8%;pointer-events:none;z-index:0;
  background:
    radial-gradient(800px 320px at 18% 18%, rgba(98,200,255,.12), rgba(10,23,48,0)),
    radial-gradient(900px 360px at 82% 22%, rgba(47,125,255,.12), rgba(10,23,48,0));
  filter:hue-rotate(0deg) blur(16px);
  opacity:.38; /* 适中透明度，确保不过度抢眼 */
  mix-blend-mode:screen; /* 与底图叠加，形成柔和光晕 */
  animation:ambientHero 26s ease-in-out infinite alternate;
  will-change:transform,filter,opacity;
}
/* 桌面端加速光晕动画（更快但仍轻量，不扰人） */
@media (pointer: fine){
  .hero::before{ animation-duration: 16s; }
}
@media (min-width: 1024px){
  .hero::before{ animation-duration: 16s; }
}
@keyframes ambientHero{
  0%{transform:translate3d(0,0,0) scale(1);filter:hue-rotate(0deg) blur(16px);opacity:.36}
  50%{transform:translate3d(0,-8px,0) scale(1.02);filter:hue-rotate(4deg) blur(18px);opacity:.40}
  100%{transform:translate3d(0,-12px,0) scale(1.03);filter:hue-rotate(6deg) blur(20px);opacity:.44}
}
@media (prefers-reduced-motion: reduce){
  .hero::before{animation:none}
}
.hero-inner{display:grid;grid-template-columns:1fr;gap:24px;align-items:center;justify-items:center}
.hero-copy{color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.25);text-align:center;max-width:840px}
.hero-title{margin:0 0 20px 0;font-size:76px;line-height:1.02;letter-spacing:3px;font-weight:800;color:#fff}
.tagline{font-size:clamp(16px,2.2vw,20px);color:rgba(255,255,255,.95);margin:0 0 8px;font-weight:700}
.hero-copy .sub{font-size:clamp(14px,1.8vw,16px);color:rgba(255,255,255,.85);margin:0}
.cta{display:flex;gap:12px}
.btn{display:inline-block;border:none;border-radius:999px;padding:10px 18px;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .2s ease-in-out, box-shadow .2s ease-in-out, background-color .2s ease-in-out}
.btn.primary{background:#2f7dff;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.btn.primary:hover{transform:scale(1.03);box-shadow:0 6px 18px rgba(0,0,0,.12);background:#22AEEA}
.btn.primary:active{transform:scale(0.98)}
.btn.primary:focus{outline:none}
.btn.ghost{border:1px solid #E2E8F0;color:#0F172A;background:#F1F5F9}
.btn.small{padding:8px 12px;font-size:14px}
/* 旧 hero 图像样式移除 */

/* info bar */
.info-bar{background:rgba(8,16,32,.6);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.info-inner{display:flex;align-items:center;gap:10px;padding:10px 0;color:var(--muted)}
.info-inner .link{margin-left:auto;color:var(--primary);text-decoration:none}

/* Features */
.features{padding:60px 0}
.features h2{margin:0 0 10px}
.section-sub{color:var(--muted);margin:6px 0 20px}
/* 标题渐变霓虹（仅标题，低调不喧宾） */
.features h2, .portfolio h2, .cta-inner h2{
  background:linear-gradient(135deg,#9fd8ff 0%,#4EA3FF 55%,#9ff0ff 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 10px rgba(78,163,255,.16), 0 0 20px rgba(98,200,255,.08);
}
/* 首页标题图片 */
.hero-logo{display:block;margin:0 auto 12px;width:clamp(240px,48vw,640px);height:auto;border-radius:12px;box-shadow:0 10px 30px rgba(47,125,255,.18)}
/* 小屏优化：缩小标题与 LOGO，收紧英雄区间距与容器内边距 */
@media (max-width:640px){
  .container{padding:0 16px}
  .portfolio{padding:20px 0 72px}
  .hero{padding:56px 0 28px;min-height:auto}
  .hero-title{font-size:36px;letter-spacing:1px}
  .tagline{font-size:16px}
  .hero-copy .sub{font-size:14px}
  .hero-logo{width:clamp(180px,66vw,420px)}
  .hero, .portfolio, .portfolio-section{scroll-margin-top:64px}
}
/* 仅屏幕阅读器可见的隐藏文本 */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.feature-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 8px 24px rgba(13,70,150,.06);padding:18px}
.feature-card .icon{width:64px;height:64px}
.feature-card h3{margin:10px 0 6px 0;font-size:16px}
.feature-card p{color:var(--muted);font-size:14px}

/* Portfolio */
.portfolio{padding:0 0 64px}
.portfolio .section-sub{line-height:1.7;max-width:900px;margin-left:auto;margin-right:auto}
.portfolio-section{margin:0 0 24px; content-visibility:auto; contain-intrinsic-size:800px}
.hero, .portfolio, .portfolio-section{scroll-margin-top:60px}
/* 报名区块：锚点定位时考虑粘性头部的高度，避免被遮挡 */
#signup{scroll-margin-top:60px}
@media (max-width:640px){
  #signup{scroll-margin-top:64px}
}
.portfolio-section h3{margin:0 0 12px;color:#eaf3ff;font-size:20px;letter-spacing:.2px}
.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;grid-auto-flow:dense}
/* 混合比例网格：适配横竖版 */
.portfolio-grid.mixed{grid-template-columns:repeat(3,1fr)}
/* Masonry（瀑布流）布局：更生动的视觉节奏 */
.portfolio-grid.masonry{display:block;column-count:3;column-gap:16px}
.portfolio-grid.masonry .work-card{display:inline-block;width:100%;margin:0 0 16px;break-inside:avoid}
.portfolio-grid.masonry .work-card.featured .cover{aspect-ratio:21/9}
/* 设计区（平面设计）：图片不裁剪，容器跟随图片高度 */
.design.portfolio-grid.masonry .work-card .cover{aspect-ratio:auto}
.design.portfolio-grid.masonry .work-card .cover img{width:100%;height:auto;object-fit:contain;display:block}
/* Masonry 响应式列数：移动 1 列，平板 2 列，桌面 3 列 */
@media (max-width:640px){
  .portfolio-grid.masonry{column-count:1}
}
@media (min-width:641px) and (max-width:1024px){
  .portfolio-grid.masonry{column-count:2}
}
/* 横向行（微电影）：影院式滚动 */
.portfolio-row{display:grid;gap:16px;grid-template-columns:repeat(3,1fr);padding-bottom:0;overflow:visible}
.portfolio-row .work-card{width:auto}
.portfolio-row .work-card.featured{grid-column:auto}
.portfolio-row .work-card .cover{aspect-ratio:16/9}
.work-card .work-head{display:flex;align-items:center;gap:8px}
.badge{background:#eef6ff;color:#2f7dff;border:1px solid #d6e9ff;border-radius:999px;padding:4px 10px;font-size:12px}
.work-desc{color:var(--muted)}
.work-actions{margin-top:8px}
.work-card .cover{position:relative;overflow:hidden;width:100%;aspect-ratio:16/9;border-radius:12px;margin-bottom:10px;border:1px solid var(--border);} 
.work-card .cover.landscape{aspect-ratio:16/9}
.work-card .cover.portrait{aspect-ratio:9/16}
.work-card .cover img, .work-card .cover video{width:100%;height:100%;object-fit:cover;display:block}
.work-card .cover video{opacity:0;transition:opacity .35s ease}
.work-card .cover video.ready{opacity:1}
.work-card .cover.gradient{background:radial-gradient(120% 90% at 50% 20%, #0b1f3a 0%, #091d36 60%, #07122a 100%);} 
/* 微粒子流光：默认静态，悬浮轻动画 */
.work-card .cover::after{content:"";position:absolute;inset:-1px;border-radius:inherit;mix-blend-mode:screen;opacity:.8;
  background:
    radial-gradient(3px 3px at 15% 25%, rgba(255,255,255,.12), transparent 60%),
    radial-gradient(2px 2px at 45% 65%, rgba(145,230,255,.14), transparent 60%),
    radial-gradient(2px 2px at 70% 30%, rgba(98,200,255,.14), transparent 60%),
    linear-gradient(120deg, rgba(255,255,255,0) 40%, rgba(120,180,255,.16) 50%, rgba(255,255,255,0) 60%);
  background-size:auto, auto, auto, 200% 200%;
  animation:glimmer 6s linear infinite;animation-play-state:paused;transition:opacity .35s ease, filter .35s ease;
}
.work-card:hover .cover::after{animation-play-state:running;filter:brightness(1.06);opacity:.9}
/* 小屏禁用 hover 位移，避免触控设备错位抖动 */
@media (max-width:640px){
  .work-card:hover{transform:none;box-shadow:none}
  .portfolio-grid.carousel .work-card:hover{transform:none;box-shadow:none}
}
@keyframes glimmer{
  0%{background-position:0% 50%, 0% 50%, 0% 50%, 0% 50%}
  50%{background-position:50% 50%, 30% 70%, 70% 30%, 100% 100%}
  100%{background-position:100% 50%, 60% 30%, 40% 80%, 0% 0%}
}
/* 悬浮与入场动画 */
.work-card{transform:translateZ(0) translateY(8px);opacity:0;transition:opacity .4s ease, transform .4s ease, box-shadow .25s ease;will-change:transform,opacity}
.work-card.in{transform:translateY(0);opacity:1}
.work-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(13,70,150,.12)}
/* 精选卡片跨列 */
.work-card.featured{grid-column:span 2}
/* Carousel（影院式横向画廊）：更高级的呈现 */

/* 科技质感：玻璃态 + 渐变细边 + 内阴影与亮色文字 */
.portfolio .work-card{position:relative;background:linear-gradient(180deg, rgba(8,20,40,.72), rgba(8,20,40,.55));backdrop-filter:saturate(140%) blur(8px);border:1px solid rgba(120,180,255,.18);box-shadow:inset 0 1px 10px rgba(255,255,255,.04), 0 16px 40px rgba(13,70,150,.12)}
.portfolio .work-card::before{content:"";position:absolute;inset:0;border-radius:16px;padding:1px;background:linear-gradient(135deg, rgba(78,163,255,.45), rgba(107,211,255,.45));-webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.work-card .work-head h3{font-size:16px;margin:0 0 2px}
.portfolio .work-card .work-head h3{color:#eaf3ff}
.portfolio .work-card .work-desc{color:rgba(204,224,255,.8);margin-top:2px;margin-bottom:0}
.portfolio .badge{background:rgba(46,125,255,.18);color:#aee0ff;border:1px solid rgba(98,200,255,.35)}
.portfolio .work-actions .btn.small{background:rgba(255,255,255,.06);color:#eaf3ff;border:1px solid rgba(120,180,255,.3)}

/* Pyramid */
.pyramid{padding:40px 0;background:linear-gradient(180deg,#0a1730 0%,#0e1d36 100%)}
.pyramid-stack{display:grid;gap:8px;margin:16px 0}
.layer{border-radius:12px;padding:12px;text-align:center;color:#eaf3ff;background:linear-gradient(135deg,#0f2342,#112a4f);border:1px solid var(--border);box-shadow:0 8px 20px rgba(13,70,150,.14)}
.layer.top{background:linear-gradient(135deg,#4EA3FF,#6BD3FF);color:#fff}
.pyramid-list{color:var(--muted)}

/* CTA */
.cta-section{padding:60px 0;background:linear-gradient(180deg,#091a34 0%, #0b1f3a 100%);text-align:center}
.cta-inner h2{margin:0 0 8px}
.brand-stars, .academy{padding:36px 0;background:linear-gradient(180deg,#091a34 0%, #0b1f3a 100%);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.brand-stars h2, .academy h2{
  background:linear-gradient(135deg,#9fd8ff 0%,#4EA3FF 55%,#9ff0ff 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 0 10px rgba(78,163,255,.12), 0 0 20px rgba(98,200,255,.06);
  text-align:center;margin:0 0 6px;
}
.brand-stars .section-descr, .academy .section-descr{color:#aee0ff;letter-spacing:.4px;margin:6px 0 8px;text-align:center;font-weight:600}
.brand-stars .section-sub, .academy .section-sub{line-height:1.8;max-width:900px;margin:6px auto 0;color:var(--muted);text-align:center}

/* 并排卡片布局（星耀品牌 + 绘梦AI研习社） */
.modules-duo{padding:40px 0 8px;background:transparent;border-top:none;border-bottom:none}
.modules-duo .modules-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.module-card{background:transparent;border-radius:18px;box-shadow:none;border:1px solid var(--border);padding:26px;color:var(--text)}
.module-card .card-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.module-card .card-icon{width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg, rgba(47,125,255,.22), rgba(98,200,255,.18));border:1px solid rgba(120,180,255,.28);color:#eaf3ff;font-size:20px;box-shadow:0 6px 16px rgba(47,125,255,.18)}
.module-card .card-title{margin:0;font-size:18px;letter-spacing:.2px;color:#eaf3ff}
.module-card .card-meta{margin:2px 0 6px;color:#aee0ff;font-weight:700;letter-spacing:.3px}
.module-card .card-sub{margin:6px 0 12px;color:var(--muted);line-height:1.6}
.module-card .card-list{padding:0;margin:0 0 14px;list-style:none;display:grid;gap:8px}
.module-card .card-list li{position:relative;padding-left:22px;color:var(--muted)}
.module-card .card-list li::before{content:"";position:absolute;left:0;top:.35em;width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,#2f7dff,#62c8ff);box-shadow:0 0 0 2px rgba(140,200,255,.12)}
.module-card .card-actions{margin-top:24px}
.modules-duo .btn.primary{border-radius:999px;padding:10px 18px}
@media (max-width:720px){
  .modules-duo .modules-grid{grid-template-columns:1fr}
}

/* Footer */
.site-footer{background:#0b1f3a;color:#cfe3ff;padding:40px 0}
.site-footer .container{text-align:center;position:relative}
.footer-inner{display:flex;justify-content:space-between;gap:20px}
.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.footer-links a{color:#cfe3ff;text-decoration:none}
.footer-links a:hover{color:#fff}
.footer-extra-link{color:var(--muted);text-decoration:underline;opacity:.8;font-size:12px;position:absolute;left:0;top:50%;transform:translateY(-50%)}
.footer-extra-link:hover{color:#eaf3ff;opacity:.95}
@media (max-width:640px){
  .footer-extra-link{position:static;transform:none;display:block;margin-top:8px;text-align:center}
}

/* Responsive */
@media (max-width:992px){
  .feature-grid{grid-template-columns:repeat(3,1fr)}
  .hero-inner{grid-template-columns:1fr}
  .portfolio-grid{grid-template-columns:repeat(2,1fr)}
  .portfolio-grid.mixed{grid-template-columns:repeat(2,1fr)}
  .work-card.featured{grid-column:span 2}
  .portfolio-grid.masonry{column-count:2}
  .portfolio-row{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .portfolio-grid{grid-template-columns:1fr}
  .portfolio-grid.mixed{grid-template-columns:1fr}
  .work-card.featured{grid-column:auto}
  .footer-inner{flex-direction:column}
  .portfolio-grid.masonry{column-count:1}
  .portfolio-row{gap:12px;grid-template-columns:1fr}
}

/* 超小屏（≤360px）：进一步缩小标题与容器内边距，避免溢出 */
@media (max-width:360px){
  .container{padding:0 12px}
  .hero-title{font-size:32px;letter-spacing:.5px}
  .tagline{font-size:15px}
}

/* 桌面拓展（≥1280px）：提升网格密度 */
@media (min-width:1280px){
  .portfolio-grid.mixed{grid-template-columns:repeat(4,1fr)}
  .portfolio-row{grid-template-columns:repeat(4,1fr)}
  .portfolio-grid.masonry{column-count:4}
}

/* 超宽屏（≥1600px、≥1920px）：进一步增加列数与图片列宽 */
@media (min-width:1600px){
  .portfolio-grid.masonry{column-count:5}
}
@media (min-width:1920px){
  .portfolio-grid.masonry{column-count:6}
}

/* 设计瀑布流：在大屏增加列数与列宽（不影响小屏既有规则） */
@media (min-width:1600px){
  .design-masonry{columns:5 300px}
}
@media (min-width:1920px){
  .design-masonry{columns:6 320px}
}
/* Modal 弹窗播放器 */
.video-modal{position:fixed;inset:0;display:none;z-index:1000}
.video-modal.open{display:block}
.video-modal .modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72)}
.video-modal .modal-dialog{position:relative;z-index:1001;width:auto;max-width:min(90vw,1000px);margin:8vh auto;background:linear-gradient(135deg,#0f2342,#112a4f);border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:0 20px 60px rgba(13,70,150,.35);overflow:visible}
.video-modal video{width:100%;height:auto;border-radius:8px;background:#000}
.video-modal .modal-close{position:absolute;top:-12px;right:-12px;width:44px;height:44px;border-radius:999px;border:1px solid rgba(140,200,255,.28);display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.10);color:#fff;font-size:20px;font-weight:700;cursor:pointer;z-index:2000;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06), 0 12px 28px rgba(13,70,150,.28);pointer-events:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation;backdrop-filter:blur(8px) saturate(150%)}
.video-modal .modal-close:hover{transform:scale(1.06)}
.video-modal .modal-close:active{transform:scale(0.98)}
.video-modal .modal-close:focus{outline:2px solid #fff3}

@media (max-width:640px){
  .video-modal .modal-close{top:-14px;right:-14px;width:48px;height:48px;font-size:22px}
}
/* 封面播放指示（适用于所有作品卡片） */
.work-card .cover{cursor:pointer;position:relative}
.work-card .cover::before{content:"";display:none}
.work-card:hover .cover::before{opacity:.85}

/* 封面播放按钮 */
.cover .cover-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:999px;border:1px solid rgba(140,200,255,.28);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;cursor:pointer;z-index:3;
  background:rgba(255,255,255,.10);box-shadow:inset 0 0 0 1px rgba(255,255,255,.06), 0 12px 28px rgba(13,70,150,.28);backdrop-filter:blur(8px) saturate(150%);
  transition:transform .18s ease, box-shadow .18s ease}
.cover:hover .cover-play{transform:translate(-50%,-50%) scale(1.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08), 0 16px 34px rgba(13,70,150,.34)}
.cover .cover-play:active{transform:translate(-50%,-50%) scale(.98)}
.cover .cover-play:focus{outline:2px solid #fff3}
/* 播放 SVG 图标尺寸与不可拦截点击 */
.cover .cover-play .icon{width:22px;height:22px;display:block;pointer-events:none;transform:translateX(3px)}
/* 封面视频就绪淡入（已存在，确保仍生效） */
.work-card .cover video{opacity:0;transition:opacity .35s ease}
.work-card .cover video.ready{opacity:1}
/* 带货视频：统一卡片尺寸（横竖版封面统一为16:9） */
.portfolio-grid.goods .work-card .cover{aspect-ratio:16/9}
.portfolio-grid.goods .work-card .cover.landscape{aspect-ratio:16/9}
.portfolio-grid.goods .work-card .cover.portrait{aspect-ratio:16/9}

/* 设计轮播（图片画廊） */

/* 回到顶部按钮 */
.back-top{position:fixed;bottom:20px;right:20px;width:44px;height:44px;border-radius:999px;border:1px solid rgba(140,200,255,.28);display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.10);color:#fff;font-size:20px;font-weight:700;cursor:pointer;z-index:60;opacity:0;transform:translateY(8px);transition:opacity .25s ease, transform .25s ease;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06), 0 12px 28px rgba(13,70,150,.28);backdrop-filter:blur(8px) saturate(150%)}
.back-top.show{opacity:.95;transform:translateY(0)}
.back-top:focus{outline:2px solid #fff3}
/* 回到顶部 SVG 图标尺寸与点击体验 */
.back-top .icon{width:22px;height:22px;display:block;pointer-events:none}
@media (max-width:640px){.back-top{width:48px;height:48px}}

/* 设计瀑布流：极简，仅列布局；滚动由外框控制 */
.design-masonry{columns:4 280px;column-gap:16px}
.design-masonry img{width:100%;height:auto;display:block;break-inside:avoid;margin-bottom:16px}
@media (max-width:1200px){.design-masonry{columns:3 260px}}
@media (max-width:900px){.design-masonry{columns:2 240px}}
@media (max-width:640px){.design-masonry{columns:1 100%}}

/* 设计外框：可见边框与背景，纵向滚动，参考其他板块风格 */
.design-frame{max-height:90.67vh;overflow-y:auto;padding:12px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(135deg,#0f2342,#112a4f);box-shadow:0 12px 40px rgba(13,70,150,.25);margin-top:8px}
.design-frame::-webkit-scrollbar{width:10px}
.design-frame::-webkit-scrollbar-thumb{background:#2f7dff55;border-radius:999px}
.design-frame::-webkit-scrollbar-track{background:transparent}

/* 图片弹窗（Lightbox）：与视频弹窗风格一致，支持前后切换 */
.image-modal{position:fixed;inset:0;display:none;z-index:1000}
.image-modal.open{display:block}
.image-modal .modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px)}
.image-modal .modal-dialog{position:relative;z-index:1001;width:auto;max-width:92vw;max-height:88vh;margin:6vh auto;background:linear-gradient(135deg,#0f2342,#112a4f);border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:0 20px 60px rgba(13,70,150,.35);display:flex;align-items:center;justify-content:center;overflow:visible}
.image-modal img{width:auto;height:auto;max-width:92vw;max-height:calc(88vh - 24px);object-fit:contain;border-radius:8px;display:block;background:#0b1b34}
.image-modal .modal-close{position:absolute;top:-12px;right:-12px;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2f7dff,#62c8ff);color:#fff;font-size:20px;font-weight:700;cursor:pointer;z-index:2000;box-shadow:0 10px 30px rgba(47,125,255,.35);pointer-events:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.image-modal .modal-close:hover{transform:scale(1.06)}
.image-modal .modal-close:active{transform:scale(0.98)}
.image-modal .image-nav{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 8px;pointer-events:none}
.image-modal .image-nav .prev,.image-modal .image-nav .next{pointer-events:auto;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2f7dff,#62c8ff);color:#fff;font-weight:700;box-shadow:0 10px 30px rgba(47,125,255,.35);cursor:pointer}
.image-modal .image-nav .prev:hover,.image-modal .image-nav .next:hover{transform:scale(1.06)}
.image-modal .image-nav .prev:active,.image-modal .image-nav .next:active{transform:scale(0.98)}
.image-modal .image-nav .prev{margin-right:auto}
.image-modal .image-nav .next{margin-left:auto}

/* 禁用 Banner 伪元素背景，避免顶区动效 */
.hero::before{display:none !important}

/* Banner 下方动态背景（仅 Banner 下方显示） */
body::after{
  content:"";position:fixed;left:-10%;right:-10%;top:45.33vh;bottom:-10%;z-index:-1;
  background:
    radial-gradient(1100px 450px at 20% 80%, rgba(98,200,255,.12), rgba(10,23,48,0) 70%),
    radial-gradient(1100px 450px at 80% 85%, rgba(47,125,255,.12), rgba(10,23,48,0) 70%);
  mix-blend-mode:screen;filter:blur(22px);opacity:.45;
  animation:none;
  will-change:transform,filter,opacity;pointer-events:none;
}
@media (min-width:1024px){ body::after{ animation:ambientBelow 28s ease-in-out infinite alternate } }
body.modal-open::after{ display:none }
.modal-open .work-card .cover::after{ animation-play-state:paused }
body.scrolling::after{ animation:none }
body.scrolling .portfolio .work-card{ backdrop-filter:none; box-shadow:none }
body.scrolling .work-card{ transition:none; box-shadow:none }
body.scrolling .work-card .cover::after{ animation-play-state:paused }
body.scrolling .cover .cover-play{ backdrop-filter:none; box-shadow:none; transition:none }
body.scrolling .carousel .carousel-track{ transition:none }
@keyframes ambientBelow{
  0%{transform:translate3d(0,0,0) scale(1);filter:hue-rotate(0deg) blur(22px);opacity:.40}
  50%{transform:translate3d(0,-1.5vh,0) scale(1.02);filter:hue-rotate(10deg) blur(20px);opacity:.46}
  100%{transform:translate3d(0,-3vh,0) scale(1.03);filter:hue-rotate(18deg) blur(18px);opacity:.50}
}
@media (max-width:640px){body::after{top:30vh}}
@media (prefers-reduced-motion: reduce){body::after{animation:none}}

/* 报名区块（页面底部） */
.signup-section{padding:40px 0;background:linear-gradient(180deg,#091a34 0%, #0b1f3a 100%);scroll-margin-top:72px;border-top:1px solid var(--border)}
.signup-card{border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,#0f2342,#112a4f);box-shadow:0 16px 40px rgba(13,70,150,.25);padding:22px}
.signup-card h2{margin:0 0 8px}
.signup-card .section-sub{margin:0 0 16px}
.form-grid{display:grid;gap:14px}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label{font-weight:600;color:#eaf3ff}
.form-group label .icon{display:inline-block;width:18px;height:18px;vertical-align:-3px;margin-right:6px}
.form-tip{color:var(--muted);font-size:13px;text-align:center;margin:16px 0 6px}
.input, textarea, select{border:1px solid rgba(120,180,255,.28);border-radius:10px;background:rgba(255,255,255,.06);color:#eaf3ff;padding:10px 12px;font-size:15px;outline:none}
.input:focus, textarea:focus, select:focus{border-color:rgba(98,200,255,.65);box-shadow:0 0 0 3px rgba(98,200,255,.18)}
textarea{min-height:100px;resize:vertical}
.form-actions{display:flex;gap:10px;justify-content:center;margin-top:16px}
.form-msg{margin-top:8px;text-align:center;font-weight:700;color:#aee0ff}
@media (max-width:640px){.signup-card{padding:16px}.signup-card h2{font-size:20px}}
/* 页脚：ICP备案号链接 */
.site-footer{margin-top:36px;padding:20px 0;border-top:1px solid var(--border);text-align:center;color:#9fb4d1;font-size:12px}
.site-footer a{color:inherit;text-decoration:none}
.site-footer a:hover{text-decoration:underline;color:#cfe3ff}
@media (max-width:640px){.site-footer{font-size:12px;padding:18px 0;margin-top:28px}}

a, button{ -webkit-tap-highlight-color: transparent }

.notify-modal{position:fixed;inset:0;display:none;z-index:1000}
.notify-modal.open{display:block}
.notify-modal .modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px)}
.notify-modal .modal-dialog{position:relative;z-index:1001;width:min(92vw,520px);margin:12vh auto;background:linear-gradient(135deg,#0f2342,#112a4f);border:1px solid var(--border);border-radius:12px;padding:18px;box-shadow:0 20px 60px rgba(13,70,150,.35);text-align:center}
.notify-modal .modal-close{position:absolute;top:-12px;right:-12px;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2f7dff,#62c8ff);color:#fff;font-size:20px;font-weight:700;cursor:pointer;box-shadow:0 10px 30px rgba(47,125,255,.35)}
.notify-modal .modal-close:hover{transform:scale(1.06)}
.notify-modal .modal-close:active{transform:scale(0.98)}
.notify-modal .modal-title{margin:6px 0 8px;font-size:20px;color:#eaf3ff;font-weight:800}
.notify-modal .modal-text{margin:0 0 12px;color:#bcd0ef}
.notify-modal .actions{display:flex;justify-content:center;gap:10px;margin-top:6px}
/* 二维码咨询弹窗 */
.qr-modal{position:fixed;inset:0;display:none;z-index:1000}
.qr-modal.open{display:block}
.qr-modal .modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72)}
.qr-modal .modal-dialog{position:relative;z-index:1001;width:auto;max-width:420px;margin:10vh auto;background:linear-gradient(135deg,#0f2342,#112a4f);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 20px 60px rgba(13,70,150,.35);text-align:center}
.qr-modal .modal-close{position:absolute;top:-12px;right:-12px;width:40px;height:40px;border-radius:999px;border:1px solid rgba(140,200,255,.28);display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.10);color:#fff;font-size:18px;font-weight:700;cursor:pointer;z-index:2000;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06), 0 12px 28px rgba(13,70,150,.28);-webkit-tap-highlight-color:transparent}
.qr-modal img{max-width:360px;max-height:60vh;border-radius:8px;background:#0b1b34;display:inline-block}
.qr-modal .tip{margin-top:10px;color:#eaf3ff;font-weight:700}
