/* ===================== 设计令牌（参考 gavin-profolic） ===================== */
:root{
  --bg:#f7f9f8;
  --blue:#0d277c;
  --blue-d:#0a2266;
  --cyan:#00a0e2;
  --terra:#ad4422;
  --white:#ffffff;
  --ink:#10131a;
  --muted:#4b5563;
  --line:#0d277c;
  --radius:32px;
  --radius-sm:14px;
  --shadow-hard:8px 8px 0 0 var(--blue);
  --shadow-hard-cyan:8px 8px 0 0 var(--cyan);
  --shadow-hard-soft:8px 8px 0 0 rgba(13,39,124,.18);
  --maxw:1200px;
  --sans:"Onest","Onest Fallback",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Geist Mono","Geist Mono Fallback",ui-monospace,SFMono-Regular,Menlo,monospace;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
em{font-style:normal}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ===== 导航 ===== */
.nav{position:sticky;top:0;z-index:60;background:rgba(247,249,248,.85);backdrop-filter:blur(10px);border-bottom:3px solid var(--blue);transition:box-shadow .3s}
.nav.scrolled{box-shadow:0 4px 0 0 rgba(13,39,124,.15)}
.nav__inner{display:flex;align-items:center;gap:20px;height:74px}
.nav__logo{font-weight:800;font-size:24px;letter-spacing:.5px}
.nav__logo .dot{color:var(--terra)}
.nav__links{margin-left:auto;display:flex;gap:30px}
.nav__links a{font-weight:600;font-size:15px;color:var(--ink);position:relative}
.nav__links a:hover{color:var(--blue)}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-6px;height:3px;width:0;background:var(--terra);transition:width .25s}
.nav__links a:hover::after{width:100%}
.nav__toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.nav__toggle span{width:26px;height:3px;background:var(--blue);transition:.3s}
.nav__toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav__toggle.open span:nth-child(2){opacity:0}
.nav__toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ===== 按钮（neo-brutalist） ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--sans);font-weight:700;cursor:pointer;border:3px solid var(--blue);transition:transform .15s,box-shadow .2s,background .2s,color .2s;font-size:15px}
.btn:active{transform:translate(2px,2px)}
.btn--primary{background:var(--blue);color:#fff;padding:16px 26px;border-radius:var(--radius-sm)}
.btn--primary:hover{background:var(--blue-d);box-shadow:var(--shadow-hard-soft)}
.btn--ghost{background:#fff;color:var(--blue);padding:16px 26px;border-radius:var(--radius-sm)}
.btn--ghost:hover{background:#eef2ff}
.btn--sm{padding:11px 20px;font-size:14px}
.btn--light{background:#fff;color:var(--blue);border-color:var(--blue)}
.btn--light:hover{background:#eef2ff}
.btn--onblue{background:#fff;color:var(--blue);border-color:#fff}
.btn--onblue:hover{background:#eef2ff}

/* ===== Hero ===== */
.hero{padding:64px 0 40px}
.hero__inner{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero__eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:3px;font-size:13px;color:var(--terra);font-weight:600;margin-bottom:10px}
.hero__name{font-weight:800;font-size:clamp(52px,9vw,92px);line-height:1;letter-spacing:-1px;margin-bottom:16px}
.hero__name .accent{color:var(--terra)}
.hero__role{font-size:20px;font-weight:600;margin-bottom:18px}
.hero__role strong{color:var(--blue)}
.hero__desc{color:var(--muted);font-size:17px;max-width:540px;margin-bottom:30px}
.hero__cta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:34px}
.hero__stats{display:flex;gap:40px;flex-wrap:wrap}
.hero__stats b{display:block;font-weight:800;font-size:38px;line-height:1;color:var(--blue)}
.hero__stats b .u{font-size:18px;color:var(--terra)}
.hero__stats span{font-size:13px;color:var(--muted);font-weight:600}

.hero__visual{position:relative}
.hero__photo{
  aspect-ratio:1/1;background:var(--cyan);border:4px solid var(--blue);border-radius:var(--radius);
  box-shadow:var(--shadow-hard);display:grid;place-items:center;position:relative;overflow:hidden;
}
.hero__photo .mono{font-family:var(--mono);font-size:13px;letter-spacing:2px;color:#fff;position:absolute;top:18px;left:18px;opacity:.85}
.hero__photo .glyph{font-weight:800;font-size:clamp(90px,16vw,160px);color:#fff;line-height:1}
.hero__photo .tag{position:absolute;bottom:18px;left:18px;background:#fff;color:var(--blue);font-weight:700;font-size:13px;padding:6px 14px;border:3px solid var(--blue);border-radius:999px}
.hero__avatar{width:100%;height:100%;object-fit:cover;display:block}

/* ===== 跑马灯 ===== */
.marquee{background:var(--ink);transform:rotate(-5deg);margin:30px -10vw;padding:18px 0;overflow:hidden;width:120vw}
.marquee__track{display:flex;gap:48px;white-space:nowrap;width:max-content;animation:scroll 22s linear infinite}
.marquee__track span{font-weight:800;font-size:22px;color:#fff;display:inline-flex;align-items:center;gap:48px}
.marquee__track span::after{content:"✦";color:var(--cyan)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ===== 通用 section ===== */
.section{padding:80px 0}
.section__head{margin-bottom:44px}
.section__title{font-weight:800;font-size:clamp(32px,5.5vw,52px);line-height:1.15;letter-spacing:-.5px}
.section__sub{color:var(--muted);font-size:17px;margin-top:14px;max-width:600px;font-weight:500}
.hl{display:inline-block;padding:2px 14px;color:#fff;font-weight:800;line-height:1.4;border-radius:6px}
.hl--terra{background:var(--terra)}
.hl--cyan{background:var(--cyan)}
.hl--blue{background:var(--blue)}

/* ===== 能力领域 ===== */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{
  background:#fff;border:3px solid var(--blue);border-radius:var(--radius);padding:30px;
  display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;min-height:300px;
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-hard)}
.card__icon{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;font-size:26px;color:#fff;border:3px solid var(--blue);margin-bottom:18px}
.card h3{font-size:22px;font-weight:800;margin-bottom:10px;color:var(--blue)}
.card p{color:var(--muted);font-size:15.5px;font-weight:500;margin-bottom:16px;flex:1}
.card__count{font-weight:700;color:var(--terra);font-size:14px}
.card--cta{background:var(--cyan);border-color:var(--blue);align-items:center;text-align:center;justify-content:center}
.card--cta h3{color:#fff}
.card--cta p{color:#eaf6ff}

/* ===== 关于 ===== */
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.about__photo{aspect-ratio:1/1;border:4px solid var(--blue);border-radius:50%;overflow:hidden;background:var(--cyan);box-shadow:-8px 8px 0 0 var(--blue);display:grid;place-items:center;position:relative}
.about__photo .glyph{font-weight:800;font-size:clamp(70px,12vw,120px);color:#fff}
.about__avatar{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}
.about__bio h2{font-weight:800;font-size:clamp(30px,4.5vw,46px);margin-bottom:16px;letter-spacing:-.5px}
.about__bio>p{color:var(--muted);font-size:17px;margin-bottom:26px}
.about__points{display:grid;gap:18px;margin-bottom:28px}
.about__point{display:flex;gap:16px;align-items:flex-start}
.about__box{width:22px;height:22px;border:2px solid var(--blue);border-radius:5px;flex-shrink:0;margin-top:4px}
.about__point h4{font-size:18px;font-weight:800;margin-bottom:4px}
.about__point p{color:var(--muted);font-size:15.5px;font-weight:500}

/* ===== 作品筛选 ===== */
.filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:36px}
.filter{font-family:var(--sans);font-weight:700;font-size:14px;padding:10px 20px;border-radius:999px;cursor:pointer;border:3px solid var(--blue);background:#fff;color:var(--blue);transition:.2s}
.filter:hover{background:#eef2ff}
.filter.active{background:var(--blue);color:#fff}

.works{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.work{
  background:#fff;border:3px solid var(--blue);border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;
}
.work:hover{transform:translateY(-6px);box-shadow:var(--shadow-hard)}
.work__thumb{height:170px;position:relative;display:grid;place-items:center;color:#fff;font-weight:800;font-size:34px;border-bottom:3px solid var(--blue)}
.work__cat{position:absolute;top:14px;left:14px;font-size:12px;font-weight:700;background:var(--blue);color:#fff;padding:5px 12px;border-radius:999px}
.work__body{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1}
.work__body h3{font-weight:800;font-size:19px;color:var(--blue)}
.work__body p{color:var(--muted);font-size:14.5px;font-weight:500;flex:1}
.work__tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}
.work__tags span{font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:#eef2ff;color:var(--blue-d)}
.work__foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding-top:12px;border-top:2px solid #e6e9f2}
.work__status{font-size:12px;font-weight:700}
.work__status--live{color:#16a34a}
.work__status--dev{color:var(--terra)}
.work__status--plan{color:var(--muted)}
.work__link{font-size:14px;color:var(--blue);font-weight:700;display:inline-flex;align-items:center;gap:6px}
.work__link:hover{gap:10px;color:var(--terra)}

/* ===== 实拍展示 Showcase ===== */
.showcase{display:grid;grid-template-columns:repeat(12,1fr);gap:26px}
.shot{grid-column:span 4;cursor:pointer;transition:transform .25s}
.shot--wide{grid-column:span 6}
.shot--tall{grid-column:span 3}
.shot:hover{transform:translateY(-6px)}

/* 浏览器窗口外框 */
.shot__browser{border:3px solid var(--blue);border-radius:16px;overflow:hidden;background:#fff;box-shadow:6px 6px 0 0 var(--blue);transition:box-shadow .25s}
.shot:hover .shot__browser{box-shadow:10px 10px 0 0 var(--blue)}
.shot__bar{display:flex;align-items:center;gap:7px;padding:10px 14px;background:#eef2ff;border-bottom:3px solid var(--blue)}
.shot__bar i{width:11px;height:11px;border-radius:50%;border:2px solid var(--blue);display:block}
.shot__bar i:nth-child(1){background:#ff5f57}
.shot__bar i:nth-child(2){background:#febc2e}
.shot__bar i:nth-child(3){background:#28c840}
.shot__bar em{margin-left:10px;flex:1;font-family:var(--mono);font-size:11.5px;color:var(--blue);background:#fff;border:2px solid var(--blue);border-radius:999px;padding:3px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shot__view{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--bg)}
.shot__view img{width:100%;height:100%;object-fit:contain;object-position:center;transition:transform .5s}
.shot:hover .shot__view img{transform:scale(1.04)}
.shot--wide .shot__view{aspect-ratio:16/9;background:#0a1330}
.shot--wide .shot__view img{object-fit:cover}

/* 手机外框 */
.shot__phone{position:relative;border:4px solid var(--ink);border-radius:26px;overflow:hidden;background:var(--ink);box-shadow:6px 6px 0 0 var(--blue);padding:9px 6px;transition:box-shadow .25s}
.shot:hover .shot__phone{box-shadow:10px 10px 0 0 var(--blue)}
.shot__phone .notch{position:absolute;top:5px;left:50%;transform:translateX(-50%);width:74px;height:9px;background:#000;border-radius:0 0 10px 10px;z-index:2}
.shot__phone img{width:100%;aspect-ratio:9/17;object-fit:cover;object-position:top center;border-radius:16px;display:block;transition:transform .5s}
.shot:hover .shot__phone img{transform:scale(1.03)}

/* 播放角标 */
.shot__play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(13,39,124,.25);transition:background .25s}
.shot:hover .shot__play{background:rgba(13,39,124,.42)}
.shot__play span{width:64px;height:64px;border-radius:50%;background:#fff;border:4px solid var(--blue);box-shadow:4px 4px 0 0 var(--blue);display:grid;place-items:center;font-size:22px;color:var(--blue);padding-left:5px;transition:transform .25s}
.shot:hover .shot__play span{transform:scale(1.12)}
.shot__zoom{position:absolute;right:12px;bottom:12px;font-family:var(--mono);font-size:11px;font-weight:700;background:#fff;color:var(--blue);border:2px solid var(--blue);border-radius:999px;padding:4px 12px;opacity:0;transform:translateY(6px);transition:.25s}
.shot:hover .shot__zoom{opacity:1;transform:none}

.shot figcaption{margin-top:14px}
.shot figcaption b{display:block;font-size:17px;font-weight:800;color:var(--blue)}
.shot figcaption span{font-size:13.5px;color:var(--muted);font-weight:600}
.shot figcaption .live{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:700;color:#fff;background:#16a34a;border-radius:999px;padding:2px 9px;margin-left:8px;vertical-align:2px}

/* ===== 灯箱 Lightbox ===== */
.lb{position:fixed;inset:0;z-index:200;display:none;background:rgba(10,19,58,.94);backdrop-filter:blur(6px);padding:28px 96px}
.lb.open{display:grid;grid-template-rows:1fr auto;gap:18px}
.lb__box{position:relative;display:grid;grid-template-columns:1.55fr .95fr;gap:0;background:#fff;border:4px solid var(--cyan);border-radius:var(--radius);overflow:hidden;max-width:1180px;width:100%;margin:0 auto;align-self:center;max-height:74vh}
.lb__stage{background:#0a1330;display:grid;place-items:center;overflow:hidden;position:relative}
.lb__stage img,.lb__stage video{max-width:100%;max-height:74vh;object-fit:contain;display:block}
.lb__meta{padding:32px 30px;display:flex;flex-direction:column;overflow-y:auto}
.lb__cat{font-family:var(--mono);font-size:11.5px;font-weight:700;color:#fff;background:var(--terra);border-radius:999px;padding:4px 12px;align-self:flex-start;margin-bottom:14px}
.lb__meta h3{font-size:26px;font-weight:800;color:var(--blue);margin-bottom:10px;line-height:1.25}
.lb__meta p{color:var(--muted);font-size:15px;font-weight:500;margin-bottom:18px}
.lb__tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}
.lb__tags span{font-size:12px;font-weight:600;padding:4px 11px;border-radius:999px;background:#eef2ff;color:var(--blue-d)}
.lb__meta .btn{align-self:flex-start;margin-top:auto}
.lb__count{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:700;margin-top:16px}

.lb__close,.lb__nav{z-index:210;width:52px;height:52px;border-radius:50%;background:#fff;border:3px solid var(--blue);box-shadow:4px 4px 0 0 var(--cyan);color:var(--blue);font-size:20px;font-weight:800;cursor:pointer;display:grid;place-items:center;transition:transform .18s,background .2s}
.lb__close:hover,.lb__nav:hover{background:var(--cyan);color:#fff;transform:scale(1.08)}
.lb__nav{position:fixed}
.lb__close{position:absolute;top:14px;right:14px;width:44px;height:44px;font-size:17px;box-shadow:3px 3px 0 0 var(--cyan)}
.lb__nav--prev{left:24px;top:50%;margin-top:-26px}
.lb__nav--next{right:24px;top:50%;margin-top:-26px}

.lb__thumbs{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;padding-bottom:4px}
.lb__thumb{width:76px;height:52px;border-radius:10px;overflow:hidden;border:3px solid rgba(255,255,255,.35);cursor:pointer;background:#0a1330;transition:.2s;padding:0;flex-shrink:0}
.lb__thumb img{width:100%;height:100%;object-fit:cover}
.lb__thumb:hover{border-color:#fff;transform:translateY(-3px)}
.lb__thumb.active{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,160,226,.35)}
body.lb-open{overflow:hidden}

/* 作品卡真实截图 */
.work__thumb--img{padding:0;overflow:hidden}
.work__thumb--img img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .5s}
.work:hover .work__thumb--img img{transform:scale(1.06)}

/* ===== 经历（深蓝整段） ===== */
.exp{background:var(--blue);padding:90px 0;color:#fff}
.exp__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:start}
.exp__text{position:sticky;top:100px}
.exp__text .section__title{color:#fff}
.exp__text p{color:#c7d2fe;font-size:17px;margin:14px 0 26px;font-weight:500}
.exp__list{display:grid;gap:20px}
.exp__card{background:#fff;border:4px solid var(--cyan);border-radius:var(--radius);padding:26px 28px;color:var(--ink)}
.exp__card .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.exp__card .yr{font-weight:800;font-size:20px;color:var(--blue)}
.exp__avatar{width:48px;height:48px;border-radius:50%;border:2px solid var(--blue);box-shadow:4px 4px 0 0 var(--blue);background:var(--cyan);display:grid;place-items:center;color:#fff;font-weight:800}
.exp__divider{border:0;border-top:3px solid var(--cyan);margin-bottom:14px}
.exp__card h3{font-size:22px;font-weight:800;color:var(--blue);margin-bottom:8px}
.exp__card p{color:var(--muted);font-size:15.5px;font-weight:500}

/* ===== 评价 ===== */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.quote{background:#fff;border:4px solid var(--blue);border-radius:var(--radius);padding:30px;position:relative}
.quote .mark{font-family:var(--serif,var(--sans));font-size:60px;line-height:.6;color:var(--terra);font-weight:800}
.quote blockquote{font-size:16px;font-weight:600;color:var(--ink);margin:8px 0 18px}
.quote figcaption b{display:block;font-weight:800;font-size:15px}
.quote figcaption span{font-size:13px;color:var(--muted);font-weight:600}

/* ===== AI 提效解决方案 ===== */
.solutions{background:#fff;border-top:3px solid var(--blue);border-bottom:3px solid var(--blue)}
.solution-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.solution-card{
  background:var(--bg);border:3px solid var(--blue);border-radius:var(--radius);padding:28px;
  display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;min-height:280px;
}
.solution-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-hard)}
.solution-card__icon{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-size:24px;color:#fff;border:3px solid var(--blue);margin-bottom:16px}
.solution-card h3{font-size:20px;font-weight:800;margin-bottom:10px;color:var(--blue)}
.solution-card p{color:var(--muted);font-size:15px;font-weight:500;margin-bottom:14px;flex:1}
.solution-card__tag{font-size:12px;font-weight:700;color:var(--terra);background:#fff;border:2px solid var(--blue);border-radius:999px;padding:5px 12px;align-self:flex-start}
.solution-card--cta{background:var(--blue);border-color:var(--blue);align-items:center;text-align:center;justify-content:center;color:#fff}
.solution-card--cta h3{color:#fff;font-size:24px;margin-bottom:10px}
.solution-card--cta p{color:#c7d2fe;margin-bottom:20px}
.solution-card--cta .btn{background:#fff;color:var(--blue);border-color:#fff;margin-bottom:14px}
.solution-card--cta .btn:hover{background:#eef2ff}
.solution-card__note{font-size:13px;color:#c7d2fe;font-weight:600}

/* ===== 联系 ===== */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:40px;background:#fff;border:3px solid var(--blue);border-radius:var(--radius);padding:44px;box-shadow:var(--shadow-hard)}
.contact__text .section__title{font-size:clamp(28px,4vw,42px)}
.contact__text>p{color:var(--muted);margin:12px 0 22px;font-weight:500;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.contact__badge{display:inline-block;font-size:12px;font-weight:800;color:#fff;background:var(--terra);border-radius:999px;padding:5px 12px}
.contact__list{list-style:none;display:grid;gap:14px}
.contact__list li{display:flex;gap:14px;align-items:baseline;font-size:15px;font-weight:600}
.contact__list span{color:var(--muted);min-width:54px;font-size:13px}
.contact__list a{color:var(--blue);font-weight:700}
.contact__list a:hover{color:var(--terra)}
.contact__list .wechat-hint{color:var(--blue);font-weight:700;font-size:14px}
.contact__qr{display:grid;place-items:center}
.qr-card{
  background:var(--bg);border:3px solid var(--blue);border-radius:var(--radius);padding:20px;
  display:flex;flex-direction:column;align-items:center;gap:14px;box-shadow:var(--shadow-hard-soft);
  max-width:260px;width:100%;
}
.qr-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius-sm);border:2px solid var(--blue)}
.qr-card span{font-size:13px;font-weight:700;color:var(--blue)}

/* ===== 页脚 ===== */
.footer{background:var(--blue);color:#fff;margin-top:0}
.footer__inner{max-width:var(--maxw);margin:0 auto;padding:26px 24px;display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600}
.footer__top:hover{color:var(--cyan)}
.footer__beian{max-width:var(--maxw);margin:0 auto;padding:0 24px 26px;display:flex;flex-direction:column;gap:6px;align-items:center;font-size:13px;font-weight:600}
.footer__beian a{color:#c7d2fe;text-decoration:none}
.footer__beian a:hover{color:var(--cyan)}
.footer__beian-sub{font-size:12px;opacity:.85}

/* ===== 滚动揭示 ===== */
.reveal{opacity:1;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease}
.reveal.in{transform:none}

/* ===== 响应式 ===== */
@media(max-width:980px){
  .hero__inner{grid-template-columns:1fr}
  .hero__visual{order:-1;max-width:420px}
  .cards,.works,.quotes,.solution-grid{grid-template-columns:repeat(2,1fr)}
  .about,.contact,.exp__grid{grid-template-columns:1fr}
  .exp__text{position:static}
  .about__photo{max-width:360px;margin:0 auto}
  .contact__qr{order:-1}
  .qr-card{max-width:220px}
  .shot,.shot--wide{grid-column:span 6}
  .shot--tall{grid-column:span 6}
  .lb{padding:20px 16px}
  .lb__box{grid-template-columns:1fr;max-height:100%;overflow-y:auto}
  .lb__stage img,.lb__stage video{max-height:44vh}
  .lb__meta{padding:24px}
  .lb__nav--prev{left:10px}
  .lb__nav--next{right:10px}
}
@media(max-width:640px){
  .nav__links{position:fixed;inset:74px 0 auto 0;flex-direction:column;gap:0;background:var(--bg);border-bottom:3px solid var(--blue);max-height:0;overflow:hidden;transition:max-height .3s;padding:0 24px}
  .nav__links.open{max-height:320px;padding:12px 24px 20px}
  .nav__links a{padding:14px 0;border-bottom:2px solid #e6e9f2}
  .nav__links a::after{display:none}
  .nav__toggle{display:flex;margin-left:auto}
  .nav .btn--sm{display:none}
  .cards,.works,.quotes,.solution-grid{grid-template-columns:1fr}
  .section{padding:56px 0}
  .contact{padding:28px}
  .qr-card{max-width:200px}
  .marquee{margin:24px -10vw}
  .shot,.shot--wide,.shot--tall{grid-column:span 12}
  .lb{padding:14px}
  .lb__close{top:10px;right:10px;width:38px;height:38px;font-size:15px}
  .lb__nav{width:42px;height:42px}
  .lb__nav--prev{left:8px}
  .lb__nav--next{right:8px}
  .lb__thumbs{gap:8px}
  .lb__thumb{width:56px;height:40px}
}
@media(prefers-reduced-motion:reduce){
  .marquee__track{animation:none}
  .reveal{transition:none;opacity:1;transform:none}
}
