/* ============================================================
   癮密 INME 頁面內容樣式 v0.2（前台、草稿預覽、編輯器畫布共用）
   以容器寬度（cqw）計算尺寸：編輯器畫面與真實網頁比例一致。
   ============================================================ */
:root {
  --bg: #0f0e0d; --bg2: #171513; --fg: #f3efe8; --muted: #a39e95; --accent: #e8c77a; --accent2: #b8913f;
  --line: rgba(243, 239, 232, .12); --panel-bg: #141210;
  --font-body: "Noto Sans TC", "Microsoft JhengHei", "PingFang TC", sans-serif;
  --font-heading: "Noto Serif TC", "PMingLiU", serif;
  --font-latin: Manrope, "Nunito Sans", sans-serif;
  --fs-scale: 1; --lh-base: 1.85;
}
.inme-content { background: var(--bg); color: var(--fg); font-family: var(--font-body); }
.inme-content *, .inme-content *::before, .inme-content *::after { box-sizing: border-box; }
.pgc { container: pg / inline-size; width: 100%; }
.pg { --pad: 4cqw; --cw: min(calc(100cqw - 2 * var(--pad)), 1360px); --row: calc(var(--cw) / 48); --u: calc(min(100cqw, 1440px) / 1440 * var(--fs-scale)); }

/* ---------- 區塊（section）與格線 ---------- */
.sec { position: relative; padding: calc(var(--pt, 4) * var(--row)) var(--pad) calc(var(--pb, 4) * var(--row)); overflow: hidden; isolation: isolate; }
.sec.full-h { min-height: 100svh; display: flex; flex-direction: column; justify-content: center; }
.sec.full-w { --cw: calc(100cqw - 2 * var(--pad)); --row: calc(var(--cw) / 48); }
.sec-grid { position: relative; z-index: auto; width: var(--cw); margin: 0 auto; display: grid;
  grid-template-columns: repeat(24, minmax(0, 1fr)); grid-template-rows: repeat(var(--rows-d, 8), minmax(var(--row), auto)); column-gap: calc(var(--cw) * .012); }
.blk { grid-column: var(--xs) / span var(--w); grid-row: var(--ys) / span var(--h); position: relative; min-width: 0; display: flex; }
.bi { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: calc(var(--fs) * var(--u)); line-height: 1.6; }
.bi > .b-img, .bi > .b-link, .bi > .b-video, .bi > .b-map { flex: 1; min-height: 0; }
.sec-bgimg { position: absolute; inset: -2%; z-index: 0; background-size: cover; background-position: center; }
.sec-bgimg.fixed { background-attachment: fixed; }
.inme-live .sec-bgimg { animation: inme-kenburns 28s ease-in-out infinite alternate; }
@keyframes inme-kenburns { from { transform: scale(1.02); } to { transform: scale(1.12) translate(-1%, -1%); } }
.sec-ov { position: absolute; inset: 0; z-index: 0; background: #000; pointer-events: none; }
.sec-grain { position: absolute; inset: -50%; z-index: 0; pointer-events: none; opacity: .07;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.inme-live .sec-grain { animation: inme-grain 1.2s steps(6) infinite; }
@keyframes inme-grain { 0% { transform: translate(0, 0); } 20% { transform: translate(-3%, 2%); } 40% { transform: translate(2%, -3%); } 60% { transform: translate(-2%, -1%); } 80% { transform: translate(3%, 3%); } 100% { transform: translate(0, 0); } }
.sec.div-slant { clip-path: polygon(0 calc(var(--row) * 3), 100% 0, 100% 100%, 0 100%); margin-top: calc(var(--row) * -3); }
.sec.div-line::before { content: ""; position: absolute; top: 0; left: 8%; right: 8%; height: 1px; z-index: 3; background: linear-gradient(90deg, transparent, var(--accent), transparent); opacity: .6; }

/* ---------- 文字 ---------- */
.b-h { margin: 0; font-family: var(--font-heading); font-weight: var(--tw, 800); line-height: var(--tlh, 1.2); letter-spacing: .02em; font-size: 1em; }
.b-h.lv-h1 { font-weight: var(--tw, 900); line-height: var(--tlh, 1.1); }
.b-h.lv-h3 { font-weight: var(--tw, 700); }
.b-h.lv-eyebrow { font-family: var(--font-latin); font-weight: 700; letter-spacing: .38em; text-transform: uppercase; color: var(--accent); }
.b-h b, .b-h strong { color: var(--accent); font-weight: inherit; }
.b-t { line-height: var(--tlh, var(--lh-base)); color: var(--tc, rgba(243, 239, 232, .86)); }
.b-t p { margin: 0 0 .9em; } .b-t p:last-child { margin-bottom: 0; }
.b-t a, .b-h a { color: var(--accent); }

/* ---------- 圖片 ---------- */
.b-img { position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: inherit; background: #1a1816; }
.b-img img { display: block; width: 100%; height: 100%; transition: transform 1.4s cubic-bezier(.2, .7, .2, 1), filter .6s; }
.b-img.zoom:hover img, .b-link:hover .b-img.zoom img { transform: scale(1.06); }
.img-dim { position: absolute; inset: 0; background: #000; pointer-events: none; }
.b-link { display: flex; border-radius: inherit; }
.img-empty { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; min-height: 60px; border: 1px dashed rgba(243, 239, 232, .3); color: var(--muted); font-size: 14px; text-align: center; padding: 8px; }

/* ---------- 按鈕 ---------- */
.b-btnwrap { display: flex; align-items: center; height: 100%; }
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .5em; padding: .85em 2.1em; border-radius: 999px; font-weight: 700; letter-spacing: .12em;
  text-decoration: none; white-space: nowrap; overflow: hidden; transition: transform .25s, box-shadow .25s, background .25s, color .25s; font-family: var(--font-body); cursor: pointer; }
.btn-gold { color: #1a140a !important; background: linear-gradient(135deg, #f1d48f, var(--accent) 45%, var(--accent2)); box-shadow: 0 0 0 1px rgba(232, 199, 122, .4), 0 8px 26px rgba(232, 199, 122, .22); }
.btn-gold::after { content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .55), transparent); transform: skewX(-20deg); transition: left .6s; }
.btn-gold:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(232, 199, 122, .7), 0 12px 34px rgba(232, 199, 122, .38); }
.btn-gold:hover::after { left: 130%; }
.btn-outline { color: var(--accent) !important; border: 1px solid var(--accent); background: rgba(15, 14, 13, .25); backdrop-filter: blur(4px); }
.btn-outline:hover { background: var(--accent); color: #1a140a !important; }
.btn-white { color: #111 !important; background: var(--fg); } .btn-white:hover { transform: translateY(-2px); }
.btn-ghost { color: var(--fg) !important; padding-left: 0; padding-right: 0; border-radius: 0; border-bottom: 1px solid var(--accent); }
.btn-sm { padding: .55em 1.4em; font-size: .82em; }

/* ---------- 影片、地圖 ---------- */
.b-video { position: relative; width: 100%; height: 100%; min-height: 120px; background: #000 center / cover no-repeat; border-radius: inherit; overflow: hidden; }
.b-video iframe, .b-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; }
.b-video.empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.b-video.empty::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .45); }
.b-video .play { position: relative; width: 74px; height: 74px; border-radius: 50%; border: 1px solid var(--accent); display: flex; align-items: center; justify-content: center; color: var(--accent); background: rgba(0, 0, 0, .35); }
.b-video .play svg { width: 34px; height: 34px; }
.b-video small { position: relative; color: var(--muted); font-size: 12px; letter-spacing: .1em; }
.b-map { position: relative; width: 100%; height: 100%; min-height: 160px; border-radius: inherit; overflow: hidden; }
.b-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(1) invert(.9) contrast(.9) brightness(.95); }

/* ---------- 分隔、跑馬燈 ---------- */
.b-div { display: flex; align-items: center; gap: 1.2em; width: 100%; height: 100%; }
.b-div span { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--accent)); opacity: .7; }
.b-div span:last-child { background: linear-gradient(90deg, var(--accent), transparent); }
.b-div em { font-style: normal; font-family: var(--font-latin); font-size: .62em; letter-spacing: .4em; color: var(--muted); white-space: nowrap; }
.b-marq { width: 100%; overflow: hidden; white-space: nowrap; display: flex; align-items: center; height: 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.marq-track { display: inline-flex; animation: inme-marquee var(--speed, 40s) linear infinite; }
.marq-track span { font-family: var(--font-latin); font-weight: 600; letter-spacing: .28em; text-transform: uppercase; padding-right: 1.6em; color: rgba(243, 239, 232, .75); }
@keyframes inme-marquee { to { transform: translateX(-50%); } }

/* ---------- 資訊卡 ---------- */
.b-card { position: relative; height: 100%; padding: 1.5em 1.4em; border-radius: inherit; background: linear-gradient(160deg, rgba(243, 239, 232, .04), rgba(243, 239, 232, .01)); transition: transform .35s; }
.b-card:hover { transform: translateY(-3px); }
.card-num { display: block; font-family: var(--font-latin); font-weight: 800; font-size: 2em; line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--accent); margin-bottom: .4em; }
.card-ico { display: inline-flex; width: 1.9em; height: 1.9em; color: var(--accent); margin-bottom: .6em; } .card-ico svg { width: 100%; height: 100%; }
.card-t { margin: 0 0 .35em; font-family: var(--font-heading); font-weight: 700; font-size: 1em; }
.card-d { margin: 0; font-size: .72em; line-height: 1.75; color: var(--muted); }

/* ---------- 主題卡片 ---------- */
.b-video.missing::after { content: '影片檔不在這台電腦（原型只存在上傳時的瀏覽器）'; position: absolute; inset: auto 0 0 0; padding: .6em; font-size: 12px; text-align: center; background: rgba(0, 0, 0, .7); color: #f3efe8; }
.b-video { position: relative; }
.b-video.bad::after { content: '這個影片無法播放（檔案格式或編碼不支援，建議改用 MP4／H.264 或 YouTube）'; position: absolute; inset: auto 0 0 0; padding: .6em; font-size: 12px; text-align: center; background: rgba(0, 0, 0, .7); color: #f3efe8; }
/* 卡片寬度固定為「一排 4 張」的大小；每排 --per 張，外框只放得下 --per 張，最後一排自動置中 */
.tcards { --gap: 1.4em; display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gap); width: calc((100% - 3 * var(--gap)) / 4 * var(--per, 4) + (var(--per, 4) - 1) * var(--gap)); max-width: 100%; margin: 0 auto; }
.tcards > .tcard { flex: 0 0 calc((100% - (var(--per, 4) - 1) * var(--gap)) / var(--per, 4)); min-width: 0; }
.tcard { position: relative; display: flex; flex-direction: column; background: var(--bg2); border: 1px solid var(--line); transition: transform .45s cubic-bezier(.2, .7, .2, 1), border-color .45s, box-shadow .45s; }
.tcard:hover { transform: translateY(-6px); border-color: rgba(232, 199, 122, .55); box-shadow: 0 24px 50px rgba(0, 0, 0, .55); }
.tc-poster { position: relative; display: block; aspect-ratio: 2 / 3; overflow: hidden; }
.tc-poster img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1), filter .6s; }
.tcard:hover .tc-poster img { transform: scale(1.07); filter: brightness(.45) blur(1px); }
.tc-hover { position: absolute; inset: auto 0 0 0; padding: 1.2em; display: flex; flex-direction: column; gap: .8em; opacity: 0; transform: translateY(14px); transition: opacity .45s, transform .45s; color: var(--fg); }
.tcard:hover .tc-hover { opacity: 1; transform: none; }
.tc-blurb { font-size: .78em; line-height: 1.8; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.tc-more { font-size: .72em; letter-spacing: .15em; color: var(--accent); }
.tc-body { padding: 1em 1.1em 1.2em; display: flex; flex-direction: column; gap: .45em; flex: 1; }
.tc-body h3 { margin: 0; font-family: var(--font-heading); font-weight: 800; font-size: 1.45em; letter-spacing: .08em; }
.tc-sub { margin: 0; color: var(--muted); font-size: .78em; }
.tc-meta { display: flex; flex-wrap: wrap; gap: .4em .9em; font-size: .74em; color: rgba(243, 239, 232, .8); margin: .2em 0 .5em; }
.tc-meta span, .b-tinfo span { display: inline-flex; align-items: center; gap: .35em; }
.tc-meta svg, .b-tinfo svg { width: 1.25em; height: 1.25em; color: var(--accent); flex: none; }
.tc-body .btn { align-self: flex-start; margin-top: auto; }
.b-tinfo { display: flex; flex-wrap: wrap; align-items: center; gap: .6em; }
.b-tinfo span { padding: .5em 1em; border: 1px solid var(--line); border-radius: 999px; font-size: .86em; background: rgba(15, 14, 13, .4); }
.b-tinfo .btn { font-size: .86em; }

/* ---------- 圖片輪播 ---------- */
.b-gal { width: 100%; height: 100%; display: flex; flex-direction: column; gap: 1em; }
.gal-track { display: flex; gap: 1em; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; flex: 1; }
.gal-track::-webkit-scrollbar { display: none; }
.gal-slide { flex: 0 0 calc((100% - (var(--pv) - 1) * 1em) / var(--pv)); scroll-snap-align: start; overflow: hidden; }
.gal-slide img { display: block; width: 100%; aspect-ratio: var(--ar); object-fit: cover; transition: transform 1.2s; }
.gal-slide:hover img { transform: scale(1.04); }
.gal-nav { display: flex; align-items: center; justify-content: center; gap: 1em; }
.gal-nav button { width: 2.6em; height: 2.6em; border-radius: 50%; border: 1px solid rgba(232, 199, 122, .6); background: transparent; color: var(--accent); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .25s, color .25s; }
.gal-nav button:hover { background: var(--accent); color: #1a140a; }
.gal-nav button svg { width: 1.2em; height: 1.2em; }
.gal-dots { display: flex; gap: .5em; } .gal-dots i { width: .5em; height: .5em; border-radius: 50%; background: rgba(243, 239, 232, .25); cursor: pointer; transition: background .3s, transform .3s; }
.gal-dots i.on { background: var(--accent); transform: scale(1.3); }

/* ---------- 常見問題 ---------- */
.b-faq { width: 100%; border-top: 1px solid var(--line); }
.faq-it { border-bottom: 1px solid var(--line); }
.faq-q { width: 100%; display: flex; align-items: center; gap: 1.2em; padding: 1.1em 0; background: none; border: 0; color: var(--fg); cursor: pointer; text-align: left; font: inherit; font-size: 1em; }
.faq-n { font-family: var(--font-latin); font-weight: 800; color: var(--accent); font-size: .8em; letter-spacing: .1em; }
.faq-qt { flex: 1; font-family: var(--font-heading); font-weight: 700; }
.faq-pm { position: relative; width: 1em; height: 1em; flex: none; }
.faq-pm::before, .faq-pm::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: var(--accent); transition: transform .35s; }
.faq-pm::after { transform: rotate(90deg); } .faq-it.open .faq-pm::after { transform: rotate(0); }
.faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s cubic-bezier(.2, .7, .2, 1); }
.faq-it.open .faq-a { grid-template-rows: 1fr; }
.faq-a > div { overflow: hidden; } .faq-a p { margin: 0 0 1.2em 2.6em; color: var(--muted); font-size: .88em; line-height: 1.9; }

/* ---------- 進場動畫（前台才啟動） ---------- */
.inme-live [data-anim] { opacity: 0; transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1), filter .9s; transition-delay: var(--anim-delay, 0ms); }
.inme-live [data-anim="fade-up"] { transform: translateY(40px); }
.inme-live [data-anim="slide-left"] { transform: translateX(-60px); }
.inme-live [data-anim="slide-right"] { transform: translateX(60px); }
.inme-live [data-anim="zoom"] { transform: scale(.9); }
.inme-live [data-anim="blur"] { filter: blur(14px); }
.inme-live [data-anim="flicker"].in-view { animation: inme-flicker 1.6s linear; }
@keyframes inme-flicker { 0%, 18%, 22%, 25%, 53%, 57%, 100% { opacity: 1; } 20%, 24%, 55% { opacity: .15; } }
.inme-live [data-anim].in-view { opacity: 1; transform: none; filter: none; }

/* ---------- 手機（依容器寬度判斷，編輯器手機畫面也適用） ---------- */
@container pg (max-width: 767px) {
  .pg { --pad: 6cqw; --cw: calc(100cqw - 2 * var(--pad)); --row: calc(var(--cw) / 16); }
  .sec.full-w { --cw: calc(100cqw - 2 * var(--pad)); --row: calc(var(--cw) / 16); }
  .sec-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); grid-template-rows: repeat(var(--rows-m, 8), minmax(var(--row), auto)); column-gap: calc(var(--cw) * .03); }
  .blk { grid-column: var(--xsm) / span var(--wm); grid-row: var(--ysm) / span var(--hm); }
  .bi { font-size: calc(var(--fsm) * 100cqw / 390 * var(--fs-scale)); }
  .m-hide { display: none; }
  .b-btnwrap { justify-content: center !important; } /* 手機上按鈕一律置中 */
  .tcards { display: flex; flex-wrap: nowrap; justify-content: flex-start; width: 100%; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1em; scrollbar-width: none; }
  .tcards::-webkit-scrollbar { display: none; }
  .tcards > .tcard { flex: 0 0 76%; scroll-snap-align: start; }
  .tc-hover { display: none; }
  .gal-slide { flex-basis: 100%; }
  .faq-a p { margin-left: 0; }
  .sec.div-slant { clip-path: polygon(0 calc(var(--row) * 2), 100% 0, 100% 100%, 0 100%); margin-top: calc(var(--row) * -2); }
}
@container pg (min-width: 768px) { .d-hide { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .inme-live [data-anim] { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; animation: none !important; }
  .marq-track, .inme-live .sec-bgimg, .inme-live .sec-grain { animation: none; }
}
.b-img.blend { background: transparent; } .b-img.blend img { filter: contrast(1.7) brightness(1.05); } /* 深灰底→純黑，配合 screen 混合即可去背 */
.blk:has(.b-img.blend) { mix-blend-mode: screen; } /* 元件本身是堆疊層，混合要設在元件上才會跟背景混合 */

/* 元件自選字型：優先於標題、卡片等預設字型（使用者明確選擇） */
.blk.has-font .bi, .blk.has-font .bi * { font-family: var(--bf) !important; }

/* ---------- 文字特效（後台「外觀 → 文字特效」） ---------- */
.blk.fx-shadow :is(.b-h, .b-t, .card-t, .card-d, .faq-qt, .tc-body h3, .marq-track span, .b-div em, .b-tinfo span), .fxs.fx-shadow { text-shadow: 0 4px 18px rgba(0, 0, 0, .9), 0 1px 2px rgba(0, 0, 0, .9); }
.blk.fx-glow :is(.b-h, .b-t, .card-t, .card-d, .faq-qt, .tc-body h3, .marq-track span, .b-div em, .b-tinfo span), .fxs.fx-glow { color: #fff3d6; text-shadow: 0 0 6px rgba(232, 199, 122, .85), 0 0 22px rgba(232, 199, 122, .5), 0 0 48px rgba(232, 199, 122, .25); }
.blk.fx-redglow :is(.b-h, .b-t, .card-t, .card-d, .faq-qt, .tc-body h3, .marq-track span, .b-div em, .b-tinfo span), .fxs.fx-redglow { color: #ffe1dc; text-shadow: 0 0 6px rgba(210, 30, 30, .95), 0 0 24px rgba(170, 0, 0, .75), 0 0 52px rgba(120, 0, 0, .5); }
.blk.fx-outline :is(.b-h, .b-t, .card-t, .card-d, .faq-qt, .tc-body h3, .marq-track span, .b-div em, .b-tinfo span), .fxs.fx-outline { color: transparent !important; -webkit-text-fill-color: transparent; -webkit-text-stroke: 1px #f3efe8; }
.blk.fx-gold :is(.b-h, .b-t, .card-t, .card-d, .faq-qt, .tc-body h3, .marq-track span, .b-div em, .b-tinfo span), .fxs.fx-gold { background: linear-gradient(180deg, #fff3cf 0%, #f0cf82 38%, #a57a2c 52%, #e9c677 72%, #fff0c4 100%); -webkit-background-clip: text; background-clip: text; color: transparent !important; -webkit-text-fill-color: transparent; }
.blk.fx-silver :is(.b-h, .b-t, .card-t, .card-d, .faq-qt, .tc-body h3, .marq-track span, .b-div em, .b-tinfo span), .fxs.fx-silver { background: linear-gradient(180deg, #ffffff 0%, #d9dce1 40%, #6f737a 52%, #c9ccd2 75%, #f4f5f7 100%); -webkit-background-clip: text; background-clip: text; color: transparent !important; -webkit-text-fill-color: transparent; }
.blk.fx-engrave :is(.b-h, .b-t, .card-t, .card-d, .faq-qt, .tc-body h3, .marq-track span, .b-div em, .b-tinfo span), .fxs.fx-engrave { color: rgba(243, 239, 232, .82); text-shadow: 0 -1px 0 rgba(0, 0, 0, .95), 0 1px 0 rgba(255, 255, 255, .2); }
.blk.fx-flicker :is(.b-h, .b-t, .card-t, .card-d, .faq-qt, .tc-body h3, .marq-track span, .b-div em, .b-tinfo span), .fxs.fx-flicker { color: #fff3d6; text-shadow: 0 0 8px rgba(232, 199, 122, .8), 0 0 26px rgba(232, 199, 122, .4); animation: inme-neon 5s linear infinite; }
.blk.fx-glitch :is(.b-h, .b-t, .card-t, .card-d, .faq-qt, .tc-body h3, .marq-track span, .b-div em, .b-tinfo span), .fxs.fx-glitch { animation: inme-glitch 3.2s steps(1) infinite; }
@keyframes inme-neon { 0%, 18%, 21%, 24%, 52%, 56%, 100% { opacity: 1; } 19%, 23%, 54% { opacity: .3; text-shadow: none; } }
@keyframes inme-glitch {
  0%, 86%, 100% { text-shadow: none; transform: none; }
  87% { text-shadow: -2px 0 rgba(255, 40, 60, .85), 2px 0 rgba(40, 220, 255, .85); transform: translateX(1px); }
  90% { text-shadow: 2px 0 rgba(255, 40, 60, .85), -2px 0 rgba(40, 220, 255, .85); transform: translateX(-2px) skewX(-6deg); }
  93% { text-shadow: -1px 0 rgba(255, 40, 60, .85), 1px 0 rgba(40, 220, 255, .85); transform: none; }
}
@media (prefers-reduced-motion: reduce) { .blk.fx-flicker *, .blk.fx-glitch *, .fxs { animation: none !important; } }
