/* V026 · 如意、龙凤压纹与金印。装饰只随所属幕移动，不建立 fixed 浮层。 */
.pd-root, .pd-root * { pointer-events: none !important; user-select: none; }
.pd-root { position: absolute; inset: 0; overflow: hidden; contain: paint; }
.pd-art { position: absolute; background-repeat: no-repeat; background-position: center; background-size: contain; }
.pd-grain { inset: 0; background-size: 160px 160px; background-repeat: repeat; opacity: .19; }
.pd-chapter { z-index: -1; }
.pd-chapter .pd-grain { opacity: .12; }
.pd-paper-surface { isolation: isolate; }
.pd-invite, .pd-schedule, .pd-venue, .pd-reply { z-index: -1; }
.pd-invite .pd-grain { opacity: .24; }

/* Static fine fibers sit under content and retain the existing pink-white gradients. */
.bg-grain { opacity: .64; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.68' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)' opacity='.065'/%3E%3Cg stroke='%23967463' stroke-opacity='.038' fill='none'%3E%3Cpath d='M0 36l54-2 53 2 73-3M0 89l67 2 60-4 53 2M0 142l60-2 52 2 68-1M34 0l-2 67 3 53-1 60M103 0l2 55-3 73 2 52M158 0l-1 70 3 45-2 65'/%3E%3C/g%3E%3C/svg%3E"); background-size:180px 180px; transition:opacity .9s ease; }
body[data-tone="water"] .bg-grain { opacity:.14; }
.pd-grain { opacity:.26; }
.pd-chapter .pd-grain { opacity:.17; }
.pd-opening .pd-grain { opacity:.28; }
.auto-play-toggle { position:fixed; z-index:34; top:calc(env(safe-area-inset-top, 0px) + 16px); right:calc(var(--sl) + 14px); padding:7px 11px; border:1px solid rgba(155,117,63,.38); border-radius:20px; background:rgba(255,253,251,.9); color:#76562f; font:12px/1.4 var(--serif); box-shadow:0 3px 15px rgba(84,53,60,.05); }
.auto-play-toggle[hidden], body:not(.env-done) .auto-play-toggle, html.lb-open .auto-play-toggle, html.bless-open .auto-play-toggle { display:none; }
.auto-play-toggle:focus-visible { outline:2px solid #9B753F; outline-offset:3px; }

/* 开场以四角如意与一幅静态龙凤压纹成章；文字另在 z-index 7，不承受纹样遮挡。 */
.pd-opening { z-index: 6; }
.pd-opening .pd-grain { opacity: .2; }
.pd-dragon-opening { inset: 8% -3% 9%; opacity: .115; }
.pd-dragon-garden { width: 86%; height: 62%; left: -28%; top: 17%; opacity: .052; }
.pd-seal { width: 32px; height: 32px; opacity: .3; }
.pd-seal-garden { width: 34px; height: 34px; visibility: hidden; rotate: -4deg; opacity: .4; }
.pd-seal-invite { width: 28px; height: 28px; right: 23px; top: 54px; rotate: 3deg; opacity: .34; }
.pd-seal-schedule { width: 30px; height: 30px; left: 20px; top: 21px; rotate: -2deg; opacity: .29; }

/* 既有疏枝只保留在喜帖与普通流信息纸面；开场不再混入桂花。 */
.pd-os-invite { width: 82px; height: 87px; left: -31px; bottom: 7%; rotate: 11deg; opacity: .38; }
.pd-os-venue { width: 84px; height: 90px; left: -34px; bottom: 12px; rotate: 16deg; opacity: .34; }

/* 玉兰为稀疏长枝，山茶为收拢圆瓣；只在照片外缘露出少量。 */
.pd-mag-B { width: 95px; height: 214px; left: -47px; bottom: 12%; rotate: -7deg; opacity: .49; }
.pd-mag-F { width: 99px; height: 222px; right: -48px; top: 20%; transform: scaleX(-1) rotate(-10deg); opacity: .4; }
.pd-cam-C { width: 135px; height: 148px; left: -65px; bottom: 11%; rotate: 23deg; opacity: .45; }
.pd-cam-E { width: 121px; height: 132px; right: -65px; top: 64%; transform: scaleX(-1) rotate(14deg); opacity: .42; }
.pd-cam-reply { width: 88px; height: 96px; right: -46px; top: -9px; transform: scaleX(-1) rotate(19deg); opacity: .42; }

/* 开场四角完整对称，全部落在幕内；右侧/下侧仅镜像同一如意图形。 */
.pd-ruyi { width: 90px; height: 90px; opacity: .74; }
.pd-tl { top: 15px; left: 12px; }
.pd-tr { top: 15px; right: 12px; transform: scaleX(-1); }
.pd-bl { bottom: 25px; left: 12px; transform: scaleY(-1); }
.pd-br { bottom: 25px; right: 12px; transform: rotate(180deg); }
.pd-opening-shoulder { width: min(28%, 112px); height: auto; aspect-ratio: 1; z-index: 1; opacity: .86; }
.pd-paper-shoulder { width: 42px; height: 42px; opacity: .56; }
.pd-invite .pd-tl { top: 4px; left: 4px; }
.pd-invite .pd-br { bottom: 4px; right: 4px; }
.pd-ruyi-opening .couture-opening-corner { display: none; }
.pd-ruyi-paper .couture-paper-corner { opacity: .22; }
.pd-ruyi-paper .couture-paper-corner.couture-tl,
.pd-ruyi-paper .couture-paper-corner.couture-br { opacity: 0; }
.pd-ruyi-paper .leaf-frame i:first-child,
.pd-ruyi-paper .leaf-frame i:last-child { opacity: .35; }

/* 无 clip-text 支持时使用深金实字。没有重复文本节点，不改变字号、方向和编辑目标。 */
.pd-gold-host .veil-kicker,
.pd-gold-host .vn-name,
.pd-gold-host .vn-amp,
.pd-gold-host .veil-date { color: #7A572B; text-shadow: none; -webkit-text-fill-color: currentColor; }
.pd-gold-host .vn-letter { color: inherit; -webkit-text-fill-color: currentColor; }
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .pd-gold-host .veil-kicker:not([data-style-edited-color]),
  .pd-gold-host .vn-name:not([data-style-edited-color]) .vn-letter:not([data-style-edited-color]),
  .pd-gold-host .vn-amp:not([data-style-edited-color]) {
    background-image: linear-gradient(118deg, #68461E 0%, #8C6631 27%, #A7854B 40%, #7B5728 46%, #AE8B50 49%, #806031 53%, #6C4B24 73%, #967240 100%);
    background-size: 100% 100%; background-repeat: no-repeat;
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  }
  .pd-gold-host .veil-date:not([data-style-edited-color]) {
    background-image: linear-gradient(112deg, #715025 0%, #8D6836 36%, #745024 48%, #916D39 56%, #6B4922 100%);
    background-size: 100% 100%; background-repeat: no-repeat;
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  }
}
/* 可选显式开关。编辑器也可直接输出同等 important 规则；用户颜色始终优先。 */
.pd-gold-host [data-style-edited-color],
.pd-gold-host [data-style-edited-color] .vn-letter {
  background-image: none !important; -webkit-text-fill-color: currentColor !important; text-shadow: none !important;
}
.pd-gold-host [data-style-edited-color] .vn-letter { color: inherit !important; }
.env-go .pd-opening { animation: pd-detail-out 1.6s cubic-bezier(.23,.74,.24,1) .08s both; }
@keyframes pd-detail-out { 0% { opacity: 1; } 20% { opacity: .9; } 100% { opacity: 0; } }
@media (max-width: 350px), (max-height: 620px) {
  .pd-opening-shoulder { width: min(25%, 86px); opacity: .82; }
  .pd-opening .pd-tl, .pd-opening .pd-tr { top: 12px; }
  .pd-opening .pd-bl, .pd-opening .pd-br { bottom: 18px; }
  .pd-dragon-opening { inset: 10% 0 11%; opacity: .1; }
  .pd-seal-invite { width: 25px; height: 25px; right: 20px; top: 49px; }
  .pd-mag-B, .pd-mag-F { width: 82px; height: 184px; }
  .pd-mag-B { left: -45px; } .pd-mag-F { right: -45px; }
  .pd-cam-C { left: -76px; } .pd-cam-E { right: -76px; }
}
@media (prefers-reduced-motion: reduce) { .env-go .pd-opening { animation: none; opacity: 0; } }
@media (forced-colors: active) {
  .pd-root { display: none; }
  .pd-gold-host .veil-kicker, .pd-gold-host .vn-name, .pd-gold-host .vn-letter,
  .pd-gold-host .vn-amp, .pd-gold-host .veil-date { background: none !important; color: CanvasText !important; -webkit-text-fill-color: currentColor !important; }
}
