/* 伊德 · 透镜：一张验光台。底色是带一点青的玻璃色，墨是深青；黄铜只给镜框，红色只给“对准了”的那一下。
   名字排成视力表；每一问的图都放在一块“载物台”上，镜片可以拖动。 */
.c-ihde {
  --bg: #eaf1f0; --paper: #f7faf9; --ink: #15303a; --ink-2: #3a545e; --ink-3: #566e77; --rule: rgba(21, 48, 58, .18);
  --acc: #a8392a; --acc-ink: #fff; --brass: #a77b2f; --brass-2: #d8b46a; --glass: rgba(185, 215, 224, .32);
  --head: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif; --body: "Noto Serif SC", "Songti SC", serif;
  --ui: "Instrument Sans", "Noto Sans SC", "PingFang SC", sans-serif; --lat: "Instrument Serif", "Noto Serif SC", serif;
  --bar-bg: rgba(234, 241, 240, .9); --chip-bg: rgba(247, 250, 249, .9); --chip-ring: #f7faf9;
  background-color: var(--bg);
  background-image: radial-gradient(1200px 700px at 78% 0%, rgba(255, 255, 255, .7), transparent 70%);
  background-repeat: no-repeat;
}
.c-ihde .dlg { --dlg-bg: #e6eeed; --dlg-paper: #fbfdfc; --dlg-me: #15303a; --dlg-me-ink: #f4f8f7; --dlg-acc: #a8392a; --dlg-ink-3: #5f747b; }
.c-ihde .c3bar { font-family: var(--ui); border-bottom-color: var(--rule); }
.c-ihde .c3bar__t a { font-family: var(--head); font-weight: 700; letter-spacing: .04em; }
.c-ihde .mk { font-family: var(--ui); font-weight: 600; font-size: 12px; letter-spacing: .16em; color: var(--ink-3); }

/* 目录：一排试镜片，当前那片是亮的 */
.c-ihde .c3toc a { font-family: var(--lat); font-style: italic; font-size: 14px; color: var(--ink-3); }
.c-ihde .c3toc a span { font-family: var(--head); font-style: normal; font-size: 12.5px; }
.c-ihde .c3toc a::after { width: 12px; height: 12px; border: 1.5px solid var(--brass); background: transparent; }
.c-ihde .c3toc a[aria-current="true"] { color: var(--acc); }
.c-ihde .c3toc a[aria-current="true"]::after { width: 16px; height: 16px; background: radial-gradient(circle at 34% 30%, #fff 0 18%, var(--glass) 46%, rgba(21, 48, 58, .12) 100%); border-color: var(--acc); }

/* ---------- 首屏：视力表 ---------- */
.c-ihde .c3hero { padding-top: calc(var(--bar) + 26px); }
.ih-hero { --lw: min(36vw, calc((100svh - var(--bar) - 176px) * .7305)); display: grid; grid-template-columns: minmax(0, 1fr) var(--lw) minmax(0, .8fr);
  grid-template-areas: "chart lun side" "info lun side"; grid-template-rows: auto 1fr; column-gap: clamp(26px, 3.2vw, 48px); max-width: 1260px; margin: 0 auto; align-items: start; }
.ih-chart { grid-area: chart; }
.ih-k { margin: 0 0 6px; font: 600 13px/1.4 var(--ui); letter-spacing: .2em; color: var(--acc); }
.ih-n { margin: 0; font: 900 clamp(84px, 8.6vw, 132px)/1 var(--head); letter-spacing: .16em; color: var(--ink); white-space: nowrap; }
.ih-row { margin: 0; font-family: var(--ui); color: var(--ink); white-space: nowrap; }
.ih-row--en { margin-top: 12px; font-weight: 700; font-size: clamp(22px, 2.2vw, 32px); line-height: 1.1; letter-spacing: .5em; }
.ih-row--yr { margin-top: 10px; padding-bottom: 10px; font-weight: 500; font-size: clamp(14px, 1.25vw, 18px); letter-spacing: .46em; border-bottom: 2px solid var(--acc);
  width: max-content; max-width: 100%; }
.ih-who { margin: 16px 0 4px; font: 700 clamp(17px, 1.45vw, 20px)/1.5 var(--head); letter-spacing: .02em; }
.ih-now { margin: 0; font-size: 14px; color: var(--ink-2); }
.ih-lun { grid-area: lun; margin: 0; width: 100%; }
.ih-lun__frame { position: relative; aspect-ratio: 900 / 1232; border-radius: 4px; overflow: hidden; box-shadow: 0 1px 0 rgba(255, 255, 255, .8) inset, 0 26px 50px -30px rgba(21, 48, 58, .55); }
.ih-lun__img { display: block; width: 100%; height: 100%; object-fit: cover; transition: filter .6s; }
.ih-lun__img.is-blur { filter: blur(2.6px) saturate(.88); }
.ih-lun figcaption, .ih-figcap, .ih-fig figcaption { margin: 10px 0 0; font: 13px/1.6 var(--ui); color: var(--ink-3); }
.ih-lun__tip { display: block; margin-bottom: 4px; color: var(--acc); font-weight: 600; }
.ih-info { grid-area: info; max-width: 620px; }
.ih-rel { margin: 20px 0 12px; padding: 12px 14px 12px 18px; background: rgba(247, 250, 249, .78); border: 1px solid var(--rule); border-radius: 12px; position: relative; }
.ih-rel::before { content: ""; position: absolute; left: -9px; top: 14px; width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--brass);
  background: radial-gradient(circle at 34% 30%, #fff 0 18%, var(--glass) 50%, var(--bg) 100%); }
.ih-rel .mk { color: var(--acc); }
.ih-rel p { margin: 0; font-size: 14.5px; line-height: 1.8; }
.ih-facts { margin: 0; font-size: 14.5px; line-height: 1.85; color: var(--ink-2); }
.ih-go { margin: 0; }
.ih-side { grid-area: side; }
.ih-qs { grid-area: qs; }
.ih-books { grid-area: books; margin-top: 26px; }
.ih-qs .c3-qlist li a { padding: 4px 0; }
.ih-books .c3-books li { padding: 5px 0; }
.ih-books .c3-books small { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.c-ihde .c3-btn { border-radius: 999px; font-family: var(--ui); font-weight: 600; padding: 10px 18px; min-height: 42px; }
.c-ihde .c3-btn--go { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.c-ihde .c3-btn--deep { background: transparent; color: var(--ink); border-color: var(--ink); }
.c-ihde .c3-btn:hover { box-shadow: 0 0 0 3px rgba(167, 123, 47, .35); }

/* 镜片（各处共用） */
.ih-loupe { position: absolute; left: 0; top: 0; z-index: 3; width: var(--d, 160px); height: auto; aspect-ratio: 1; margin: 0; padding: 0; border: 0; border-radius: 50%;
  background: transparent; cursor: grab; overflow: hidden; touch-action: none; -webkit-tap-highlight-color: transparent;
  box-shadow: 0 0 0 3px var(--brass), 0 0 0 4.5px rgba(255, 255, 255, .7), 0 12px 26px rgba(21, 48, 58, .38); transition: box-shadow .9s ease, opacity .5s; }
.ih-loupe[hidden] { display: none; }
.ih-loupe:active { cursor: grabbing; }
.ih-loupe:focus-visible { outline: 3px solid var(--acc); outline-offset: 4px; }
.ih-loupe__see { position: absolute; inset: 0; background-repeat: no-repeat; pointer-events: none; }
.ih-loupe__glint { position: absolute; inset: 0; border-radius: 50%; pointer-events: none; transition: opacity .9s;
  background: radial-gradient(circle at 30% 24%, rgba(255, 255, 255, .62), rgba(255, 255, 255, 0) 30%), radial-gradient(circle at 72% 82%, rgba(255, 255, 255, .16), transparent 34%); }
.ih-loupe.is-quiet { box-shadow: 0 0 0 1px rgba(167, 123, 47, .22), 0 4px 10px rgba(21, 48, 58, .06); }
.ih-loupe.is-quiet .ih-loupe__glint { opacity: .12; }
.ih-lun__lens { --d: clamp(118px, 34%, 210px); }

.ih-band { max-width: 1240px; margin: 46px auto 0; padding-top: 20px; border-top: 1px solid var(--ink); box-shadow: 0 -5px 0 -4px var(--acc);
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.ih-mk2 { margin-top: 18px !important; }
.c-ihde .c3-feats { margin: 0; padding: 0; list-style: none; counter-reset: f; }
.c-ihde .c3-feats li { counter-increment: f; position: relative; padding: 5px 0 5px 34px; font-size: 14.5px; line-height: 1.65; border-bottom: 1px solid var(--rule); }
.c-ihde .c3-feats li::before { content: counter(f); position: absolute; left: 0; top: 7px; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%;
  border: 1.5px solid var(--brass); font: italic 400 15px/1 var(--lat); color: var(--ink); }
.c-ihde .c3-books li, .c-ihde .c3-links li { font-size: 14.5px; border-bottom-style: solid; }
.c-ihde .c3-books small, .c-ihde .c3-links small { font-family: var(--ui); font-size: 12.5px; }
.c-ihde .c3-qlist li a { display: flex; gap: 12px; padding: 5px 0; text-decoration: none; font-size: 14.5px; align-items: baseline; }
.c-ihde .c3-qlist li a b { font: italic 400 19px/1 var(--lat); color: var(--acc); min-width: 2.4em; }
.c-ihde .c3-qlist li a:hover span { text-decoration: underline; text-decoration-color: var(--acc); }

/* ---------- 每一问 ---------- */
.c-ihde .c3q { display: block; padding-top: calc(var(--bar) + 34px); }
.ih-q { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); grid-template-areas: "art head" "art body"; grid-template-rows: auto 1fr;
  column-gap: clamp(28px, 4.4vw, 70px); max-width: 1280px; margin: 0 auto; align-items: start; }
.ih-q--r { grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); grid-template-areas: "head art" "body art"; }
.ih-q__head { grid-area: head; }
.ih-q__art { grid-area: art; position: sticky; top: calc(var(--bar) + 16px); }
.ih-q__body { grid-area: body; max-width: 640px; }
.c-ihde .c3q__when { font-family: var(--ui); gap: 14px; }
.c-ihde .c3q__when b { font: italic 400 50px/1 var(--lat); color: var(--acc); letter-spacing: .01em; }
.c-ihde .c3q__when span { font-size: 14px; color: var(--ink-2); }
.c-ihde .c3q__q { font-family: var(--head); font-weight: 900; font-size: clamp(30px, 3.3vw, 46px); line-height: 1.24; letter-spacing: .02em; margin: 8px 0 18px; word-break: keep-all; text-wrap: balance; }
.c-ihde .c3q__lede { font-size: 16.5px; line-height: 1.95; text-align: justify; }
.c-ihde .c3-quote { margin: 20px 0; padding: 16px 18px 14px 22px; border: 0; border-radius: 12px; background: var(--paper); position: relative;
  box-shadow: 0 0 0 1px var(--rule); }
.c-ihde .c3-quote::before { content: ""; position: absolute; left: -11px; top: 18px; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--brass);
  background: radial-gradient(circle at 34% 30%, #fff 0 18%, var(--glass) 50%, var(--bg) 100%); }
.c-ihde .c3-quote blockquote p { font-family: var(--body); font-size: 18px; font-weight: 600; }
.c-ihde .c3-orig { font-family: var(--lat); font-size: 16.5px; line-height: 1.45; color: var(--ink-2); }
.c-ihde .c3-quote figcaption { font-family: var(--ui); color: var(--ink-3); }
.c-ihde .c3-tags li { border-color: rgba(167, 123, 47, .55); font-family: var(--ui); color: var(--ink-2); }
.c-ihde .c3-works li a { text-decoration-color: var(--brass); }
.c-ihde .talk { border-color: var(--rule); background: var(--paper); }
.c-ihde .c3-ask { border-color: rgba(167, 123, 47, .6); border-radius: 12px; }
.c-ihde .c3-deeplink { color: var(--acc); }

/* 载物台（各问的图与机关） */
.ih-cube, .ih-bows, .ih-relw, .ih-eden, .ih-sky, .ih-chute, .ih-knock, .ih-otzi { padding: 14px 16px 16px; background: var(--paper); border-radius: 14px;
  box-shadow: 0 0 0 1px var(--rule), 0 22px 44px -32px rgba(21, 48, 58, .5); }
.ih-k2 { margin: 0 0 10px; font: 600 12.5px/1.45 var(--ui); letter-spacing: .14em; color: var(--acc); }
.ih-out { margin: 12px 0 0; min-height: 3.4em; font-size: 14.5px; line-height: 1.75; color: var(--ink-2); }
.ih-seg { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ih-seg button, .ih-btn { min-height: 42px; padding: 8px 14px; border: 1px solid var(--ink); border-radius: 999px; background: transparent; color: var(--ink);
  font: 600 14px/1.2 var(--ui); cursor: pointer; transition: background .2s, color .2s; }
.ih-seg button:hover, .ih-btn:hover { background: rgba(21, 48, 58, .07); }
.ih-seg button[aria-pressed="true"], .ih-seg button.is-on { background: var(--ink); color: var(--paper); }
.ih-seg--sm button { min-height: 40px; font-size: 13px; padding: 6px 12px; border-color: var(--ink-3); color: var(--ink-2); }
.ih-seg--sm button[aria-pressed="true"] { background: var(--ink-2); border-color: var(--ink-2); color: var(--paper); }

/* 内克尔立方体 */
.ih-cube__stage { position: relative; max-width: 440px; margin: 0 auto; touch-action: pan-y; }
.ih-cube__svg { display: block; width: 100%; height: auto; overflow: visible; }
.ih-e { stroke: var(--ink); stroke-width: 2.6; stroke-linecap: round; transition: stroke-dasharray .35s, opacity .35s, stroke .35s; }
.ih-face, .ih-hole, .ih-bug { fill: transparent; transition: fill .45s; }
.ih-cube[data-v="down"] .k-h { stroke-dasharray: 5 7; opacity: .55; }
.ih-cube[data-v="down"] .ih-face--top { fill: rgba(167, 123, 47, .2); }
.ih-cube[data-v="down"] .ih-face--front { fill: rgba(185, 215, 224, .42); }
.ih-cube[data-v="up"] .k-b { stroke-dasharray: 5 7; opacity: .55; }
.ih-cube[data-v="up"] .ih-face--bot { fill: rgba(167, 123, 47, .2); }
.ih-cube[data-v="up"] .ih-face--back { fill: rgba(185, 215, 224, .42); }
.ih-cube[data-v="bug"] .ih-hole { fill: #18333d; }
.ih-cube[data-v="bug"] .ih-bug { fill: #c9a75e; }
.ih-cube[data-v="bug"] .ih-e { stroke: #efe2bf; }
.ih-cube__lens { --d: 104px; background: var(--paper); }
.ih-cube__mag { position: absolute; left: 0; top: 0; overflow: visible; pointer-events: none; }

.ih-cube__lens::after { content: ""; position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, transparent 55%, rgba(185, 215, 224, .35) 88%, rgba(255, 255, 255, .5)); }
.ih-cube.is-flip .ih-cube__svg { animation: ih-flip .5s ease; }
@keyframes ih-flip { 0% { transform: none; } 40% { transform: scale(.97); filter: blur(.6px); } 100% { transform: none; } }
.ih-cube__orig { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; align-items: center; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--rule); }
.ih-cube__orig img { display: block; width: 110px; height: auto; }
.ih-cube__orig figcaption { margin: 0; font: 12.5px/1.65 var(--ui); color: var(--ink-3); }
.ih-bows { margin-top: 16px; }
.ih-bows__row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.ih-bow { display: flex; flex-direction: column; align-items: center; gap: 4px; min-height: 44px; padding: 8px 6px 10px; border: 1px solid var(--rule); border-radius: 12px;
  background: transparent; color: var(--ink); font: 600 13.5px/1.3 var(--ui); cursor: pointer; transition: border-color .2s, box-shadow .2s; }
.ih-bow svg { display: block; width: auto; height: 118px; }
.ih-bow__limb { fill: none; stroke: var(--ink); stroke-width: 4.5; stroke-linecap: round; transition: stroke .3s; }
.ih-bow__str { stroke: var(--ink-3); stroke-width: 1.2; }
.ih-bow__ring { fill: none; stroke: var(--ink); stroke-width: 2; }
.ih-bow:hover { border-color: var(--brass); }
.ih-bow[aria-pressed="true"] { border-color: var(--acc); box-shadow: 0 0 0 1px var(--acc) inset; }
.ih-bow[aria-pressed="true"] .ih-bow__limb { stroke: var(--acc); }

/* 四种关系 */
.ih-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-bottom: 12px; }
.ih-tabs button { display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 44px; padding: 7px 4px; border: 1px solid var(--rule); border-radius: 10px;
  background: transparent; color: var(--ink); cursor: pointer; font-family: var(--ui); }
.ih-tabs button b { font: 900 17px/1.2 var(--head); letter-spacing: .1em; }
.ih-tabs button small { font-size: 11.5px; color: var(--ink-3); white-space: nowrap; }
.ih-tabs button[aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.ih-tabs button[aria-selected="true"] small { color: #c9d8dc; }
.ih-rel__stage { position: relative; overflow: hidden; border-radius: 10px; background: #f7faf9; height: min(54vh, 640px); aspect-ratio: 800 / 1037; max-width: 100%; margin: 0 auto; }
.ih-rel__world { display: block; width: 100%; height: 100%; object-fit: cover; transition: filter .6s, opacity .6s; }
.ih-rel__stage[data-mode="emb"] .ih-rel__world.is-live { filter: blur(3px); }
.ih-rel__stage[data-mode="alt"] .ih-rel__world { opacity: .28; filter: grayscale(1) blur(1px); }
.ih-rel__lens { --d: clamp(120px, 40%, 230px); }
.ih-rel__thermo, .ih-rel__top { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; transition: opacity .4s; }
.ih-rel__stage[data-mode="her"] .ih-rel__thermo, .ih-rel__stage[data-mode="alt"] .ih-rel__top { opacity: 1; }
.ih-rel__stage[data-mode="her"] .ih-loupe__see, .ih-rel__stage[data-mode="alt"] .ih-loupe__see { opacity: 0; }
.ih-rel__stage[data-mode="bg"] .ih-rel__lens { opacity: 0; pointer-events: none; }
.ih-rel__stage[data-mode="alt"] .ih-rel__lens { box-shadow: 0 0 0 3px var(--acc), 0 0 0 4.5px rgba(255, 255, 255, .7), 0 16px 34px rgba(21, 48, 58, .45); }
.ih-spin { transform-origin: 50px 88px; animation: ih-wobble 1.9s ease-in-out infinite alternate; }
.ih-stripes path { animation: ih-strip .32s linear infinite; }
.ih-whirl { animation: ih-whirl .9s ease-in-out infinite alternate; }
@keyframes ih-wobble { from { transform: rotate(-4deg); } to { transform: rotate(4deg); } }
@keyframes ih-strip { 0% { transform: translateX(-5px); opacity: .35; } 50% { opacity: 1; } 100% { transform: translateX(5px); opacity: .35; } }
@keyframes ih-whirl { from { opacity: .2; } to { opacity: .6; } }
.ih-merc { transform-origin: 50px 78px; }
.ih-hum { position: absolute; left: 0; right: 0; bottom: 6px; width: 100%; height: 34px; opacity: 0; transition: opacity .8s; pointer-events: none; }
.ih-hum path { fill: none; stroke: var(--ink); stroke-width: 1.4; vector-effect: non-scaling-stroke; animation: ih-hum .18s linear infinite; }
@keyframes ih-hum { 0% { transform: translate(0, 0); } 50% { transform: translate(-5px, .6px); } 100% { transform: translate(-10px, 0); } }
.ih-rel__stage[data-mode="bg"] .ih-hum { opacity: .5; }
.ih-rel__stage.is-forest .ih-hum { opacity: 0; }
.ih-rel__f { margin: 12px 0 0; font: 700 22px/1.3 var(--head); letter-spacing: .08em; color: var(--ink); text-align: center; }
.ih-forest { margin: 8px 0 0; }

/* 伊甸园 */
.ih-eden__view { position: relative; overflow: hidden; border-radius: 6px; height: min(58vh, 720px); aspect-ratio: 900 / 1139; max-width: 100%; margin: 0 auto; }
.ih-eden__view img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ih-eden__tools { position: absolute; inset: 0; width: 100%; height: 100%; }
.ih-loom { mix-blend-mode: multiply; }
.ih-th { stroke-width: 8; stroke-linecap: butt; opacity: 0; transition: opacity .35s; }
.ih-th--w { stroke: #a77b2f; }
.ih-th--f { stroke: #7d5b22; stroke-dasharray: 41 59; stroke-dashoffset: 0; }
.ih-th--o { stroke-dashoffset: 50; }
.ih-th.on { opacity: .34; }
.ih-tool { opacity: 0; transform: translateY(18px); transition: opacity .5s, transform .5s; }
.ih-tool.on { opacity: 1; transform: none; }
.ih-slide { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; margin-top: 14px; font: 600 14px/1.3 var(--ui); }
.ih-slide input { width: 100%; height: 40px; accent-color: var(--acc); cursor: pointer; }

/* 望远镜 */
.ih-sky__field { position: relative; aspect-ratio: 600 / 380; border-radius: 12px; overflow: hidden; cursor: crosshair;
  background: radial-gradient(ellipse at 28% 22%, #26404a, #0d1a20 72%); }
.ih-sky__naked { position: absolute; inset: 0; width: 100%; height: 100%; }
.ih-stars circle { fill: #f6f1df; }
.ih-scope { --d: 36%; position: absolute; left: 0; top: 0; width: var(--d); aspect-ratio: 1; height: auto; margin: 0; padding: 0; border: 0; border-radius: 50%; overflow: hidden;
  background: #081217; cursor: grab; touch-action: none;
  box-shadow: 0 0 0 4px var(--brass), 0 0 0 9px rgba(8, 18, 23, .9), 0 0 0 10.5px rgba(216, 180, 106, .7), 0 16px 34px rgba(0, 0, 0, .55); }
.ih-scope[hidden] { display: none; }
.ih-scope:focus-visible { outline: 3px solid var(--brass-2); outline-offset: 12px; }
.ih-sky__tele { position: absolute; inset: 0; width: 100%; height: 100%; }
.ih-scope__rim { position: absolute; inset: 0; border-radius: 50%; pointer-events: none; background: radial-gradient(circle, transparent 58%, rgba(0, 0, 0, .55) 100%); }

/* 降落伞 */
.ih-chute__view { position: relative; overflow: hidden; border-radius: 8px; height: min(60vh, 740px); aspect-ratio: 1000 / 1424; max-width: 100%; margin: 0 auto; background: #dfe7e6; }
.ih-chute__view img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; transform-origin: 0 0; transition: transform 1.3s cubic-bezier(.65, 0, .25, 1); }
.ih-chute__view[data-v="near"] img { transform: translate(-94%, -43%) scale(2.4); }
.ih-chute__view[data-v="near"] { animation: ih-sway 3.2s ease-in-out infinite alternate; }
@keyframes ih-sway { from { transform: rotate(-.8deg); } to { transform: rotate(.8deg); } }
.ih-chute__mark { position: absolute; left: 60%; top: 57.6%; width: 0; height: 0; transition: opacity .5s; }
.ih-chute__mark i { position: absolute; left: -26px; top: -30px; width: 52px; height: 60px; border-radius: 50%; border: 2px solid var(--acc); }
.ih-chute__mark b { position: absolute; left: 32px; top: -12px; padding: 2px 8px; border-radius: 999px; background: var(--acc); color: #fff; font: 600 12.5px/1.6 var(--ui); white-space: nowrap; }
.ih-chute__view[data-v="near"] .ih-chute__mark { opacity: 0; }
.ih-chute__wind { position: absolute; inset: 0; opacity: 0; transition: opacity .8s; pointer-events: none;
  background: radial-gradient(ellipse at 50% 100%, transparent 42%, rgba(21, 48, 58, .5) 100%),
    repeating-linear-gradient(90deg, transparent 0 37px, rgba(255, 255, 255, .28) 37px 38px, transparent 38px 91px, rgba(255, 255, 255, .18) 91px 92px);
  background-size: 100% 100%, 100% 240px; animation: ih-wind .55s linear infinite; }
.ih-chute__view[data-v="near"] .ih-chute__wind { opacity: 1; }
@keyframes ih-wind { from { background-position: 0 0, 0 0; } to { background-position: 0 0, 0 -240px; } }

/* 敲桌子与冰人 */
.ih-table { position: relative; height: 124px; border-radius: 10px; overflow: hidden; box-shadow: 0 2px 0 #7a5530 inset, 0 -6px 0 rgba(0, 0, 0, .12) inset;
  background: repeating-linear-gradient(178deg, rgba(90, 58, 26, .0) 0 9px, rgba(90, 58, 26, .18) 9px 10px, rgba(90, 58, 26, 0) 10px 23px),
    repeating-linear-gradient(181deg, rgba(255, 236, 200, .0) 0 15px, rgba(255, 236, 200, .14) 15px 17px), linear-gradient(180deg, #c49562, #a87743); }
.ih-wave { position: absolute; left: 0; top: 50%; width: 100%; height: 70px; transform: translateY(-50%); }
.ih-wave path { fill: none; stroke: #fff6e2; stroke-width: 2; vector-effect: non-scaling-stroke; }
.ih-ripple { position: absolute; left: 50%; top: 50%; width: 20px; height: 20px; margin: -10px 0 0 -10px; border-radius: 50%; border: 2px solid rgba(255, 246, 226, .9); opacity: 0; }
.ih-ripple.go { animation: ih-rip .7s ease-out; }
@keyframes ih-rip { from { opacity: 1; transform: scale(.4); } to { opacity: 0; transform: scale(9); } }
.ih-otzi { margin-top: 14px; background: linear-gradient(180deg, #f4fbfd, #e3f0f4); }
.ih-otzi__n { margin: 0 0 8px; font-size: 14.5px; color: var(--ink-2); }
.ih-otzi__l { margin: 0; display: grid; gap: 6px; }
.ih-otzi__l > div { display: grid; grid-template-columns: 138px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 44px; padding: 2px 0; border-bottom: 1px dashed rgba(21, 48, 58, .2); }
.ih-otzi__l dt button { width: 100%; min-height: 40px; padding: 6px 10px; border: 1px solid var(--ink); border-radius: 999px; background: var(--paper); color: var(--ink);
  font: 600 13.5px/1.2 var(--ui); cursor: pointer; text-align: center; }
.ih-otzi__l dt button[aria-expanded="true"] { background: var(--ink); color: var(--paper); }
.ih-otzi__l dd { margin: 0; font: 600 15px/1.5 var(--body); color: var(--ink); animation: ih-say .5s ease; }
@keyframes ih-say { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: none; } }
.ih-speak { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 16px; align-items: start; }
.ih-speak__foot { display: grid; gap: 18px; justify-items: center; }
.ih-fig { margin: 0; }
.ih-fig img { display: block; width: 100%; height: auto; }
.ih-fig--steth img { width: 100%; height: auto; mix-blend-mode: multiply; }

/* 从韩连庆的幻灯机里滑出来的一张片子 */
.ih-slidecard { position: relative; display: flex; flex-direction: column; width: 156px; height: 156px; padding: 16px 16px 10px; margin: 0 8px 10px 0; border-radius: 7px;
  background: linear-gradient(145deg, #f3efe4, #e3ddcd); box-shadow: 0 1px 0 #fff inset, 0 10px 22px rgba(21, 48, 58, .28); color: #2a2620; text-decoration: none;
  transform: rotate(-5deg); transition: transform .3s; }
.ih-slidecard:hover, .ih-slidecard:focus-visible { transform: rotate(-1deg) translateY(-3px); }
.ih-slidecard__win { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 2px; padding: 6px; border-radius: 3px; text-align: center;
  background: radial-gradient(circle at 50% 40%, #fff3cf, #f2c86a 70%, #d9a443); box-shadow: 0 0 0 1px rgba(0, 0, 0, .25) inset; }
.ih-slidecard__win b { font: 900 15px/1.25 var(--head); color: #3a2a10; }
.ih-slidecard__win i { font: 11px/1.3 var(--head); font-style: normal; color: #5a4320; }
.ih-slidecard__hand { margin-top: 6px; font: 17px/1.1 "Long Cang", "Noto Serif SC", cursive; color: #2b2622; text-align: center; }
.ih-slidecard__dot { position: absolute; left: 8px; bottom: 8px; width: 9px; height: 9px; border-radius: 50%; background: #c8372d; }

/* 结尾 */
.c-ihde .c3end { border-top: 1px solid var(--ink); box-shadow: 0 -5px 0 -4px var(--acc) inset; }
.c-ihde .c3end h2 { font-weight: 900; letter-spacing: .06em; }
.ih-end__k { max-width: 52em; margin: -6px 0 18px; color: var(--ink-2); font-size: 15px; }
.c-ihde .c3-lin li { border-radius: 12px; background: var(--paper); }
.c-ihde .c3-lin .av { box-shadow: 0 0 0 2px var(--brass-2); }

@media (max-width: 1199px) {
  .ih-hero { --lw: min(42vw, calc((100svh - var(--bar) - 150px) * .7305)); grid-template-columns: minmax(0, 1fr) var(--lw); grid-template-areas: "chart lun" "info lun" "qs lun" "books books"; grid-template-rows: auto auto 1fr auto; }
  .ih-side { display: contents; }
  .ih-qs { margin-top: 18px; }
  .ih-qs .c3-qlist li a { padding: 2px 0; font-size: 14px; }
  .ih-tabs button small { display: none; }
  .ih-row--en { margin-top: 8px; }
  .ih-who { margin-top: 12px; }
  .ih-books { margin-top: 30px; padding-top: 16px; border-top: 1px solid var(--rule); }
  .ih-books .c3-books { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
  .ih-rel { margin-top: 16px; }
  .c-ihde .c3toc a b { display: none; }
  .ih-speak { grid-template-columns: minmax(0, 1fr) 150px; }
}
@media (max-width: 960px) {
  .ih-hero { grid-template-columns: minmax(0, 1fr); grid-template-areas: "chart" "info" "qs" "lun" "books"; grid-template-rows: none; }
  .ih-lun { width: min(82%, 420px); margin: 30px auto 0; }
  .ih-qs { margin-top: 26px; }
  .ih-books .c3-books { grid-template-columns: minmax(0, 1fr); }
  .ih-band { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .ih-q, .ih-q--r { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "art" "body"; }
  .ih-q__art { position: static; margin-bottom: 18px; }
  .ih-q__body { max-width: none; }
  .ih-rel__stage, .ih-eden__view, .ih-chute__view { height: auto; width: min(100%, 480px); }
  .c-ihde .c3q { padding-top: calc(var(--bar) + 10px); }
}
@media (max-width: 560px) {
  .ih-n { letter-spacing: .1em; }
  .ih-row--en { letter-spacing: .36em; }
  .ih-row--yr { letter-spacing: .3em; }
  .c-ihde .c3q__when b { font-size: 42px; }
  .ih-tabs button small { display: none; }
  .ih-tabs button b { font-size: 16px; }
  .ih-otzi__l > div { grid-template-columns: 112px minmax(0, 1fr); }
  .ih-speak { grid-template-columns: minmax(0, 1fr); }
  .ih-speak__foot { justify-items: stretch; }
  .ih-fig--steth { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 12px; align-items: center; }
  .ih-fig--steth figcaption { margin: 0; }
  .ih-slidecard { justify-self: center; }
  .ih-cube__orig { grid-template-columns: 84px minmax(0, 1fr); }
  .ih-cube__orig img { width: 84px; }
  .ih-bow svg { height: 96px; }
  .ih-rel__f { font-size: 19px; }
  .ih-slide { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .ih-slide span { justify-self: end; }
}
@media (prefers-reduced-motion: reduce) {
  .ih-spin, .ih-stripes path, .ih-whirl, .ih-hum path, .ih-chute__wind, .ih-chute__view[data-v="near"] { animation: none !important; }
}
