/* v0.27 视觉精修：只修正已记录的碰撞、比例与转场问题。最后加载，覆盖前面的同名规则；不改用户在编辑器里保存的字号、位置与隐藏选择。 */

/* —— 开场：一次连贯的揭幕 ——
   以前点按后名字先单独消失，屏风才打开；屏风打开后，题签、开场日期和提示还叠在第一幕照片上约两秒，最后一下子切走。
   现在：提示随指尖立即退去；名字随门板一起淡出、略放大；题签和日期在门板转开的过程中淡出，第一幕的日期随后淡入（site.css 里 1.7s 起）。 */
.env-go .veil-hint { animation: op-soft-out 420ms ease-out both; }
.env-go .veil-names-in { animation: op-names-out 1150ms cubic-bezier(.33, 0, .2, 1) 80ms both; }
.env-go .veil-kicker { animation: op-soft-out 900ms cubic-bezier(.4, 0, .2, 1) 520ms both; }
.env-go .veil-date { animation: op-soft-out 820ms cubic-bezier(.4, 0, .2, 1) 600ms both; }
@keyframes op-soft-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translate3d(0, -8px, 0); } }
@keyframes op-names-out { 0% { opacity: 1; transform: none; } 55% { opacity: .55; } 100% { opacity: 0; transform: translate3d(0, -10px, 0) scale(1.04); } }

/* 提示是次要信息：保留编辑器保存的字号，只把颜色从近黑退到暖灰，不与题签争夺层级 */
.veil-hint:not([data-style-edited-color]) { color: #7C6870; }

/* 两侧姓名的视觉平衡：Vivian 字母多、斜体向右倾，原先比 Tim 离中缝远约 11px、低约 8px。
   用相对定位做基础校正（编辑器保存的偏移用 translate，两者叠加，不覆盖用户设置）。 */
#opening .vn-name[aria-label="Tim"] { position: relative; left: -5px; top: 4px; }
#opening .vn-name[aria-label="Vivian"] { position: relative; left: -7px; top: -4px; }
#opening .vn-amp { position: relative; top: 12px; }

/* 竖排文案：空间不足时由 story.fitColumns 收紧字距（--vstep），不改字号 */
.cap-v span { height: var(--vstep, 1.46em); line-height: var(--vstep, 1.46em); }
.cap-v { scale: var(--vfit, 1); transform-origin: 50% 0; }

/* —— 园林（F）——
   原底纹是一列叠起的花苞，读起来像一串爱心，与中式园林不协调；换成极淡的海棠窗格（海棠花形 + 斜向细格），只作纸面肌理。
   照片间的四瓣几何花与菱形框换成月洞窗里的一朵五瓣梅花，金色花蕊。 */
.f-paper { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%23BA945C' stroke-opacity='.13' stroke-width='.7'%3E%3Cpath d='M22.5 22.5A10.2 10.2 0 0 1 41.5 22.5A10.2 10.2 0 0 1 41.5 41.5A10.2 10.2 0 0 1 22.5 41.5A10.2 10.2 0 0 1 22.5 22.5Z'/%3E%3Cpath d='M27 27L37 37M37 27L27 37' stroke-opacity='.07'/%3E%3Cpath d='M0 0L15.5 15.5M64 0L48.5 15.5M0 64L15.5 48.5M64 64L48.5 48.5'/%3E%3C/g%3E%3C/svg%3E"); background-size: 58px 58px; }
.f-window { stroke-width: .6; opacity: .42; }
.f-stamens { stroke: #C8A46B; stroke-width: .55; fill: #C8A46B; opacity: .85; }
.f-petals { stroke-width: .6; }
.f-ornament .f-window circle { fill: none; }

/* —— 晨光相册（C）：丝带金线在题字处让开 —— */
.scene-object-C { -webkit-mask-image: radial-gradient(ellipse 36% 17% at 50% var(--hole-y, 120%), transparent 0 52%, #000 100%); mask-image: radial-gradient(ellipse 36% 17% at 50% var(--hole-y, 120%), transparent 0 52%, #000 100%); }

/* —— 断行：横排文案只在标点处换行，避免“伴。”“日”“分享。”这类单独落到下一行的孤字；放不下时再任意处断开 —— */
.cap-h, .rsvp-lede, .closing-line, .scene-whisper, .venue-heading, .venue-title { word-break: keep-all; overflow-wrap: anywhere; text-wrap: balance; }
.c-cap { white-space: nowrap; scale: var(--hfit, 1); transform-origin: 50% 50%; }

/* —— 电脑两翼：A、E 两侧原来是没有照片的空拱框、空椭圆框，看上去像照片没加载出来。
   改为该场景的珠饰（贝母花扣 + 一弯珍珠），与画窗的珍珠刺绣呼应；其他场景的两翼不变。 */
.couture-world[data-scene="A"] .scene-side-A, .couture-world[data-scene="E"] .scene-side-E { opacity: 0 !important; }
.couture-world-jewel { display: block; }
.couture-rail-cameo { top: 30%; width: 64px; height: 64px; left: calc(50% - 32px); }
.couture-rail-pearls { top: calc(30% + 70px); width: min(62%, 240px); left: calc(50% - min(31%, 120px)); }
.couture-side-right .couture-world-jewel { top: 22%; }

/* —— 婚礼流程页：“吉祥如意”小印原先压在左上角的如意角饰上；移到右上角饰之下，与喜帖页的“囍”印同一位置关系 —— */
.pd-seal-schedule { left: auto; right: 24px; top: 58px; }
/* 喜帖后方的细密囍纹再退一步，只作锦地 */
.scene-object-I { opacity: .6; }

/* —— 封面日期与会堂：每行不断开；放不下时由 story.fitColumns 整块等比缩小（--dvfit） —— */
.a-date, .a-venue { white-space: nowrap; }
.a-dv { scale: var(--dvfit, 1); transform-origin: 0 0; }

/* —— 倒计时数字：原先随全站的毛笔体，“11”读成“ll”、“00”像圆圈；改用与婚礼流程时间相同的衬线数字（编辑器另选字体时仍以编辑器为准） —— */
.countdown-unit b { font-family: var(--latin); font-variant-numeric: tabular-nums lining-nums; letter-spacing: .02em; }

/* 回执标题：一行，放不下时由 app.js 等比缩小（--hfit） */
.rsvp-title { white-space: nowrap; display: flex; justify-content: center; scale: var(--hfit, 1); transform-origin: 50% 50%; }

/* —— 封面签名：写完后笔迹与确认版签名图片交叉淡化（app.js 加 sg-xfade） —— */
.sg-live.sg-xfade .sg-cv { opacity: 0; transition: opacity .9s ease; }
.sg-live.sg-xfade .sg-read { opacity: 1; transition: opacity .9s ease; }

/* —— 结尾：窄屏上右下角的玫瑰花束原先压住“设计样稿 · 尚未经新人确认”；窄屏缩小并下移，留出文字 —— */
@media (max-width: 360px) { .couture-closing-bouquet { width: 44%; height: 250px; right: -48px; bottom: -9%; } }

/* —— v0.27.1 封面：只保留主照片，日期与会堂以照片中线居中（编辑器另设对齐时仍以编辑器为准） —— */
.a-dv { text-align: center; transform-origin: 50% 0; }
.a-dv .a-date, .a-dv .a-venue { margin-inline: auto; }   /* 编辑器固定了这两行的宽度，块本身也要居中 */
/* 封面主照片后的浅粉衬纸原先向右下错开，使整组视觉重心偏右；封面只向下错开，左右对称 */
#ch-A [data-photo="hero"] .ph-back { transform: translate(0, 13px); }
