/* V4 public interaction extensions; existing visual and motion layers stay intact. */
.birthday-band-v4{border-bottom:1px solid #ffdfc4;background:linear-gradient(100deg,#fff8ee,#fffdfa 64%,#fff1df);color:#19263e;overflow:hidden}.birthday-inner-v4{display:flex;align-items:center;gap:32px;min-height:88px}.birthday-title-v4{display:flex;align-items:center;gap:12px;flex:none}.birthday-title-v4>span{width:37px;height:37px;display:grid;place-items:center;border-radius:50%;font-size:24px;background:#ffead4;color:#ff730d;box-shadow:0 0 0 6px #fff3e5}.birthday-title-v4 b{display:block;font-size:14px}.birthday-title-v4 small{display:block;font-size:10px;color:#a27d60;margin-top:5px}.birthday-window-v4{overflow:hidden;min-width:0;flex:1;mask-image:none;padding:12px 0}.birthday-track-v4{display:flex;width:max-content;animation:none}.birthday-track-v4>div{display:flex;flex:none;align-items:center;gap:16px;padding-right:16px}.birthday-person-v4{display:flex;align-items:center;gap:12px;white-space:nowrap;background:#ffffffc9;border:1px solid #f5d8bd;border-radius:30px;padding:10px 18px;box-shadow:0 4px 14px #b9701610}.birthday-person-v4 b{font-size:14px}.birthday-person-v4>span{font-size:12px;color:#da6b15}.birthday-person-v4 i{font-style:normal;font-size:9px;color:#a27d60}.birthday-window-v4:hover .birthday-track-v4,.birthday-window-v4:focus-within .birthday-track-v4{animation-play-state:paused}@keyframes birthday-travel-v4{to{transform:translateX(calc(-1 * var(--birthday-distance)))}}.v4-positive-benefits article{background:#fff8ee;border:1px solid #ffe1c4;border-radius:12px;padding:15px;margin:10px 0}.v4-positive-benefits b{color:#c65a12}.community-preview-v4{margin-top:30px;border:1px dashed #e8c6a6;border-radius:16px;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fffdf9;flex-wrap:wrap}.community-preview-v4>div>span{font-size:9px;letter-spacing:.15em;color:#c67b3b}.community-preview-v4 h3{font-size:20px;margin:7px 0;color:#26314a}.community-preview-v4 p{font-size:12px;color:#8a8e98;margin:0}.community-preview-v4 button{border:1px solid #ffc697;background:#fff2df;color:#b7601c;border-radius:9px;padding:12px 18px;font-size:12px;cursor:pointer}.community-preview-v4 button:disabled{color:#8e806f;background:#f8f3eb;cursor:default}.community-preview-v4>small{width:100%;color:#a69a8e;font-size:10px}.regional-v4 .featured-basis>small{display:block;margin-top:6px;font-size:10px;color:#937e6a}.regional-v4 .region-tabs{flex-wrap:wrap}
@media(max-width:760px){.birthday-inner-v4{display:block;padding-top:15px;padding-bottom:8px}.birthday-title-v4{padding:0 4px}.birthday-window-v4{margin-top:4px}.birthday-person-v4{padding:9px 14px}.birthday-title-v4>span{width:30px;height:30px;font-size:20px}.community-preview-v4{padding:20px;gap:16px}.community-preview-v4 button{width:100%}}
@media(prefers-reduced-motion:reduce){.birthday-window-v4{overflow-x:auto;mask-image:none}.birthday-track-v4{animation:none}.birthday-track-v4>[aria-hidden]{display:none}}.motion-paused .birthday-track-v4,.fx5-paused .birthday-track-v4{animation-play-state:paused}

/* Short birthday lists stay still; long lists wrap at the measured group boundary. */
.birthday-track-v4>[aria-hidden]{display:none}
.birthday-window-v4[data-scrolling=true]{mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.birthday-window-v4[data-scrolling=true] .birthday-track-v4{animation:birthday-travel-v4 var(--birthday-duration,36s) linear infinite}
.birthday-window-v4[data-scrolling=true] .birthday-track-v4>[aria-hidden]{display:flex}
.birthday-window-v4[data-scrolling=true]:hover .birthday-track-v4,.birthday-window-v4[data-scrolling=true]:focus-within .birthday-track-v4{animation-play-state:paused}
.community-action-v4{text-align:center;flex:none}.community-preview-v4 .community-action-v4 p{margin-top:9px;font-size:12px;color:#b7601c}
.ensemble-info-action .ensemble-intro-v4{font-size:13px;line-height:1.6;margin:0 0 5px;color:#bd611f}
@media(max-width:760px){.community-action-v4{width:100%}}
@media(prefers-reduced-motion:reduce){.birthday-window-v4[data-scrolling=true]{mask-image:none}.birthday-window-v4[data-scrolling=true] .birthday-track-v4{animation:none}.birthday-window-v4[data-scrolling=true] .birthday-track-v4>[aria-hidden]{display:none}}
.motion-paused .birthday-window-v4[data-scrolling=true] .birthday-track-v4,.fx5-paused .birthday-window-v4[data-scrolling=true] .birthday-track-v4{animation-play-state:paused}
/* Impressions live around each figure; the existing introduction remains below. */
.v4-impression-world .ensemble-stage{height:450px;padding-top:144px}
.v4-impression-head{position:absolute;z-index:8;width:274px;max-width:calc(100% - 16px);box-sizing:border-box;transform:translateX(-50%);padding:9px 12px 7px;background:#fffdf8f5;border:1px solid #ffc99d;border-radius:15px;box-shadow:0 8px 24px #b96b2520;color:#29334a;pointer-events:auto}
.v4-impression-head[hidden]{display:none!important}
.v4-impression-head::after{content:"";position:absolute;bottom:-6px;left:var(--tag-tip-x,50%);width:10px;height:10px;transform:translateX(-50%) rotate(45deg);background:#fffdf8;border-right:1px solid #ffc99d;border-bottom:1px solid #ffc99d}
.v4-impression-head-title{display:flex;align-items:center;justify-content:space-between;gap:8px;line-height:1.4}.v4-impression-head-title b{font-size:11px;color:#875022}.v4-impression-head-title small{font-size:9px;color:#a98d75;white-space:nowrap}
.v4-impression-head-tags{display:flex;align-items:center;justify-content:center;gap:5px;min-height:31px;padding:5px 0 6px}.v4-impression-head-tags>span{display:block;min-width:0;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 7px;border-radius:16px;background:#fff0df;border:1px solid #ffdbb9;font-size:10px;line-height:1.4;color:#b16124;transform:rotate(-4deg)}.v4-impression-head-tags>span:nth-child(2){transform:translateY(-3px) rotate(3deg)}.v4-impression-head-tags>span:nth-child(3){transform:rotate(-2deg)}.v4-impression-head-tags>small{font-size:10px;color:#a38873}
.v4-impression-head form{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid #f0c8a6;border-radius:20px;padding:3px 4px 3px 7px;min-height:32px}.v4-impression-head form>span{font-size:19px;color:#f78024;line-height:1}.v4-impression-head input{border:0;outline:0;background:transparent;min-width:0;width:100%;font:inherit;font-size:11px;color:#29334a;padding:4px}.v4-impression-head input:focus{box-shadow:none}.v4-impression-head form:focus-within{outline:2px solid #ff9d54;outline-offset:2px}.v4-impression-head button{flex:none;border:0;border-radius:16px;padding:6px 10px;color:#fff;background:#ff770d;cursor:pointer;font-size:10px;min-height:28px}.v4-impression-head p[role=status]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px;color:#b36b30;line-height:1.4;margin:4px 0 0;min-height:0}.v4-impression-head p[role=status]:empty{display:none}
.v4-impression-flight{position:absolute;z-index:5;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;user-select:none;font-size:13px;font-weight:600;color:#c57229;text-shadow:0 1px 6px #fff9;will-change:transform,opacity;transform-origin:center;line-height:1.6}
@media(max-width:760px){.v4-impression-world .ensemble-stage{height:439px;padding-top:144px}.v4-impression-head{width:278px;padding:8px 10px 7px}.v4-impression-head form{min-height:38px}.v4-impression-head button{min-height:34px;padding-inline:12px}.v4-impression-head input{font-size:16px;line-height:1.2;padding:4px 2px}.v4-impression-flight{font-size:12px;max-width:125px}}
@media(prefers-reduced-motion:reduce){.v4-impression-flight{display:none!important}}
.v4-impression-head .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Impression input is restored for both the actual page and the offline review. */
#ensemble.ensemble-chibi .ensemble-scroller{height:500px}
#ensemble.ensemble-chibi .ensemble-stage{height:488px;padding-top:160px}
#ensemble .v4-impression-head{width:304px;padding:12px 14px 10px;border-radius:18px;background:#fffcf8fa;border-color:#efc7a6;box-shadow:0 10px 30px #ac5c2124}
#ensemble .v4-impression-head-title b{font-size:12px;color:#754b2b}
#ensemble .v4-impression-head .v4-tag-close{display:grid;place-items:center;width:30px;height:30px;min-height:30px;padding:0;border:0;background:#fff0e2;color:#b77541;font-size:20px;line-height:1;border-radius:50%}
#ensemble .v4-impression-head .v4-tag-close:hover{background:#ffe1c6}
#ensemble .v4-impression-head form{min-height:38px;padding:4px 5px 4px 9px;border-color:#edcbae;border-radius:13px;background:#fff}
#ensemble .v4-impression-head input{font-size:12px}
#ensemble .v4-impression-head form button{min-height:30px;padding:7px 11px;border-radius:10px;background:linear-gradient(135deg,#ff8a20,#ff6810);font-size:11px;white-space:nowrap}
#ensemble .v4-impression-head button:disabled{opacity:.5;cursor:wait}
#ensemble .v4-impression-head [role=status]{white-space:normal;overflow:visible;line-height:1.6;font-size:10px;margin-top:5px}
#ensemble .v4-impression-head .v4-tag-recover{background:#fff3e7;color:#a55d24;border:1px solid #f2ccaa;padding:5px 9px;margin-top:4px;font-size:11px}
#ensemble .v4-impression-head button:focus-visible{outline:2px solid #ff891f;outline-offset:2px}
@media(max-width:760px){#ensemble.ensemble-chibi .ensemble-scroller{height:470px}#ensemble.ensemble-chibi .ensemble-stage{height:458px;padding-top:160px}#ensemble .v4-impression-head{width:304px;max-width:calc(100% - 16px);padding:10px 12px}#ensemble .v4-impression-head input{font-size:16px}#ensemble .v4-impression-head .v4-tag-close{min-height:36px;width:36px;height:36px}#ensemble .v4-impression-head form{min-height:42px}#ensemble .v4-impression-head form button{min-height:36px}}

/* Six coordinated lettering treatments, applied only to saved impression text. */
.v4-tag-art--coral{--tag-ink:#e84b0d;--tag-paper:#fff0d9;--tag-edge:#ffb778;--tag-font:"SimHei","黑体","Microsoft YaHei",sans-serif;--tag-weight:900;--tag-size:19px;--tag-chip-size:12px;--tag-stroke:1.8px}
.v4-tag-art--violet{--tag-ink:#852ce6;--tag-paper:#f5e9ff;--tag-edge:#cf9eff;--tag-font:"STXingkai","华文行楷","KaiTi","STKaiti",serif;--tag-weight:600;--tag-size:23px;--tag-chip-size:15px;--tag-stroke:1px}
.v4-tag-art--teal{--tag-ink:#00866a;--tag-paper:#dcfff1;--tag-edge:#71dfbb;--tag-font:"YouYuan","幼圆","Yuanti SC","Microsoft YaHei",sans-serif;--tag-weight:700;--tag-size:19px;--tag-chip-size:12px;--tag-stroke:2.5px}
.v4-tag-art--blue{--tag-ink:#155eeb;--tag-paper:#e8f1ff;--tag-edge:#8cb8ff;--tag-font:"Microsoft YaHei","PingFang SC","SimHei",sans-serif;--tag-weight:900;--tag-size:20px;--tag-chip-size:12px;--tag-stroke:2.8px;--tag-italic:italic}
.v4-tag-art--rose{--tag-ink:#db187b;--tag-paper:#ffe8f4;--tag-edge:#ff97cc;--tag-font:"KaiTi","STKaiti","楷体",serif;--tag-weight:700;--tag-size:22px;--tag-chip-size:14px;--tag-stroke:1.2px}
.v4-tag-art--ink{--tag-ink:#9b6200;--tag-paper:#fff6ce;--tag-edge:#ffd04a;--tag-font:"STLiti","隶书","SimSun",serif;--tag-weight:500;--tag-size:22px;--tag-chip-size:14px;--tag-stroke:1px}
#ensemble .v4-impression-head-tags>span.v4-tag-art{font-family:var(--tag-font);font-weight:var(--tag-weight);font-style:var(--tag-italic,normal);font-size:var(--tag-chip-size);color:var(--tag-ink);background:var(--tag-paper);border-color:var(--tag-edge);letter-spacing:.015em;line-height:1.4;box-shadow:0 2px 3px #70533509}
#ensemble .v4-impression-flight.v4-tag-art{max-width:196px;padding:2px 5px;font-family:var(--tag-font);font-size:var(--tag-size);font-weight:var(--tag-weight);font-style:var(--tag-italic,normal);letter-spacing:.045em;line-height:1.35;color:var(--tag-ink);-webkit-text-stroke:var(--tag-stroke) #fffdf8;paint-order:stroke fill;text-shadow:0 2px 0 var(--tag-paper),0 3px 7px #673b2424}
#ensemble .v4-impression-flight.v4-tag-font--bold{text-shadow:1px 2px 0 var(--tag-edge),0 4px 7px #a64e1720}
#ensemble .v4-impression-flight.v4-tag-font--script{letter-spacing:.08em;text-shadow:1px 2px 0 var(--tag-paper),0 3px 8px #5a326320}
#ensemble .v4-impression-flight.v4-tag-font--outline{text-shadow:1px 1px 0 var(--tag-edge),2px 2px 0 var(--tag-paper),0 4px 8px #273f6c20}
#ensemble .v4-impression-flight.v4-tag-font--brush::after{content:"";position:absolute;left:8px;right:7px;bottom:2px;height:2px;border-radius:50%;background:var(--tag-ink);transform:rotate(-5deg);box-shadow:0 1px 0 #fff8;opacity:.6}
#ensemble .v4-impression-flight.v4-tag-font--serif{letter-spacing:.1em;text-shadow:1px 2px 0 var(--tag-edge),0 3px 6px #583b2224}
@media(max-width:760px){#ensemble .v4-impression-flight.v4-tag-art{max-width:160px;font-size:calc(var(--tag-size) - 2px);letter-spacing:.02em}#ensemble .v4-impression-head-tags>span.v4-tag-art{max-width:108px}}

/* Explicit color and font choices override automatic lettering independently. */
.v4-tag-color--coral{--tag-ink:#e84b0d;--tag-paper:#fff0d9;--tag-edge:#ffb778}
.v4-tag-color--violet{--tag-ink:#852ce6;--tag-paper:#f5e9ff;--tag-edge:#cf9eff}
.v4-tag-color--teal{--tag-ink:#00866a;--tag-paper:#dcfff1;--tag-edge:#71dfbb}
.v4-tag-color--blue{--tag-ink:#155eeb;--tag-paper:#e8f1ff;--tag-edge:#8cb8ff}
.v4-tag-color--rose{--tag-ink:#db187b;--tag-paper:#ffe8f4;--tag-edge:#ff97cc}
.v4-tag-color--ink{--tag-ink:#9b6200;--tag-paper:#fff6ce;--tag-edge:#ffd04a}
.v4-tag-font--bold{--tag-font:"SimHei","黑体","Microsoft YaHei",sans-serif;--tag-weight:900;--tag-size:19px;--tag-chip-size:12px;--tag-stroke:1.8px;--tag-italic:normal}
.v4-tag-font--script{--tag-font:"STXingkai","华文行楷","KaiTi","STKaiti",serif;--tag-weight:600;--tag-size:23px;--tag-chip-size:15px;--tag-stroke:1px;--tag-italic:normal}
.v4-tag-font--round{--tag-font:"YouYuan","幼圆","Yuanti SC","Microsoft YaHei",sans-serif;--tag-weight:700;--tag-size:19px;--tag-chip-size:12px;--tag-stroke:2.5px;--tag-italic:normal}
.v4-tag-font--outline{--tag-font:"Microsoft YaHei","PingFang SC","SimHei",sans-serif;--tag-weight:900;--tag-size:20px;--tag-chip-size:12px;--tag-stroke:2.8px;--tag-italic:italic}
.v4-tag-font--brush{--tag-font:"KaiTi","STKaiti","楷体",serif;--tag-weight:700;--tag-size:22px;--tag-chip-size:14px;--tag-stroke:1.2px;--tag-italic:normal}
.v4-tag-font--serif{--tag-font:"STLiti","隶书","SimSun",serif;--tag-weight:500;--tag-size:22px;--tag-chip-size:14px;--tag-stroke:1px;--tag-italic:normal}
#ensemble .v4-impression-head{width:328px}
#ensemble .v4-tag-appearance{display:grid;gap:7px;margin-top:9px;padding-top:8px;border-top:1px solid #f4e5d8}
#ensemble .v4-tag-color-row,#ensemble .v4-tag-font-row{display:flex;align-items:center;gap:7px;min-width:0}
#ensemble .v4-tag-color-row>span,#ensemble .v4-tag-font-row>label{font-size:11px;color:#96765e;flex:0 0 27px}
#ensemble .v4-tag-swatches{display:flex;align-items:center;gap:4px}
#ensemble .v4-impression-head .v4-tag-swatch{display:grid;place-items:center;min-height:30px;height:30px;width:30px;padding:3px;border-radius:50%;border:2px solid transparent;background:transparent;color:#a06a43;cursor:pointer;font:11px/1 "Microsoft YaHei",sans-serif}
#ensemble .v4-tag-swatch>span{display:block;width:20px;height:20px;border-radius:50%;background:var(--tag-ink);box-shadow:inset 0 0 0 1px #0000000a}
#ensemble .v4-impression-head .v4-tag-swatch--auto{background:conic-gradient(#d95d34,#8a50ae,#3a79ba,#288d7b,#bc5187,#d95d34);color:white;border:3px solid #fff;font-weight:700}
#ensemble .v4-impression-head .v4-tag-swatch[aria-pressed=true]{border-color:#b66e32;box-shadow:0 0 0 2px #fff,0 0 0 3px #e8c8ad}
#ensemble .v4-tag-font-row select{min-width:0;width:130px;min-height:32px;border:1px solid #e8cfba;border-radius:8px;background:#fffaf5;color:#755139;font:12px/1.4 "Microsoft YaHei",sans-serif;padding:5px 6px;outline-offset:2px}
#ensemble .v4-tag-style-sample{display:block;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;color:var(--tag-ink);background:var(--tag-paper);border-radius:7px;padding:4px;font-family:var(--tag-font);font-size:15px;font-weight:var(--tag-weight);font-style:var(--tag-italic,normal)}
#ensemble.ensemble-chibi .ensemble-scroller{height:600px}
#ensemble.ensemble-chibi .ensemble-stage{height:588px;padding-top:260px}
@media(max-width:760px){#ensemble .v4-impression-head{width:328px;max-width:calc(100% - 16px)}#ensemble .v4-impression-head .v4-tag-swatch{width:30px;height:34px}#ensemble .v4-tag-swatches{gap:3px}#ensemble .v4-tag-font-row select{min-height:36px;width:128px}#ensemble.ensemble-chibi .ensemble-scroller{height:570px}#ensemble.ensemble-chibi .ensemble-stage{height:558px;padding-top:260px}}

/* V5 bright palette: gold swatch stays sunny while text retains contrast. */
.v4-tag-color--ink{--tag-swatch:#ffc400}
#ensemble .v4-tag-swatch>span{background:var(--tag-swatch,var(--tag-ink))}
#ensemble .v4-impression-head .v4-tag-swatch--auto{background:conic-gradient(#ff6500,#962eff,#086cff,#00c58c,#ff3296,#ffc400,#ff6500)}
