/* Ruby Flora — merah ruby, burgundy, dan frame bunga dramatis. */
.t-rubyflora {
    --bg: #4a0a18; --bg-2: #671326; --card: #781b31; --ink: #fff2e6; --muted: #e9b8aa;
    --accent: #f06a61; --accent-2: #f4c07c; --on-accent: #4a0a18; --line: rgba(240,106,97,.32);
    --hero-rgb: 74,10,24; --tint-a: .72; --hero-ink: #fff2e6;
    --serif-r: 'Bodoni Moda', Georgia, serif;
    color-scheme: dark;
}
.t-rubyflora .page { background: radial-gradient(circle at 8% 8%, rgba(244,192,124,.13) 0 2px, transparent 2.5px) 0 0 / 30px 30px, radial-gradient(circle at 90% 72%, rgba(240,106,97,.18) 0 3px, transparent 3.5px) 0 0 / 46px 46px, var(--bg); }
.t-rubyflora .cover, .t-rubyflora .hero, .t-rubyflora .aside { background-image: linear-gradient(var(--hero-tint), var(--hero-tint)), var(--cover, none), radial-gradient(circle at 50% 15%, rgba(240,106,97,.33), transparent 44%), linear-gradient(145deg, #811b37, #350610); }
.t-rubyflora .cover::before, .t-rubyflora .hero::before, .t-rubyflora .aside::before { content: none; display: none; }
.t-rubyflora .tm-frame { z-index: 1; }
.t-rubyflora .tm-corner { width: clamp(58px, 17vw, 100px); opacity: .9; }
.t-rubyflora .cover::after { inset: 10% 10% auto; height: 84px; border: 0; background: url('../../img/themes/rosevale/garland.svg') center top / 100% auto no-repeat; filter: saturate(1.8) hue-rotate(-12deg) brightness(1.1); opacity: .8; }
.t-rubyflora .kicker { font: 600 .68rem 'Manrope', sans-serif; letter-spacing: .38em; color: var(--accent-2); }
.t-rubyflora .names, .t-rubyflora .names i, .t-rubyflora .sec__title, .t-rubyflora .event h3, .t-rubyflora .lstory__title, .t-rubyflora .quote, .t-rubyflora .wishes__title, .t-rubyflora .thanks { font-family: var(--serif-r); }
.t-rubyflora .names { font-style: italic; font-weight: 400; letter-spacing: -.045em; }
.t-rubyflora .names i { color: var(--accent-2); }
.t-rubyflora .cover .names { font-size: clamp(3.7rem, 15vw, 5.6rem); }
.t-rubyflora .cover__date, .t-rubyflora .hero__date, .t-rubyflora .aside__date { font: 500 1rem var(--serif-r); letter-spacing: .14em; color: var(--accent-2); }
.t-rubyflora .cover__to strong { font: 500 1.45rem var(--serif-r); }
.t-rubyflora .sec { background: radial-gradient(circle at 88% 10%, rgba(240,106,97,.12) 0 2px, transparent 2.5px) 0 0 / 27px 27px, var(--bg); }
.t-rubyflora .sec::before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .18; background: url('../../img/themes/floral-realistic/frame-corners.svg') center / 100% 100% no-repeat; filter: saturate(1.1) brightness(1.02); }
.t-rubyflora .sec > * { position: relative; z-index: 1; }
.t-rubyflora .sec--tint { background-color: var(--bg-2); }
.t-rubyflora .sec__title { font-weight: 400; color: var(--ink); }
.t-rubyflora .sec__title::after { content: '✽'; margin-top: .45rem; color: var(--accent-2); }
.t-rubyflora .lead-txt, .t-rubyflora .person__parents, .t-rubyflora .event__addr, .t-rubyflora .story, .t-rubyflora .lstory__text { color: var(--muted); }
.t-rubyflora .quote { color: var(--ink); }
.t-rubyflora .ornament { font-size: 0; }
.t-rubyflora .ornament::before { content: '❧'; font: 2.2rem/1 var(--serif-r); color: var(--accent-2); }
.t-rubyflora .event, .t-rubyflora .lstory__card, .t-rubyflora .gift, .t-rubyflora .rsvp, .t-rubyflora .wish { border-radius: 22px 6px 22px 6px; background: rgba(120,27,49,.88); border-color: var(--line); box-shadow: 0 28px 52px -32px rgba(0,0,0,.9); }
.t-rubyflora .event::before { inset: 8px; border-radius: 16px 3px 16px 3px; border-color: rgba(244,192,124,.24); }
.t-rubyflora .event h3, .t-rubyflora .lstory__title, .t-rubyflora .gift__bank { color: var(--accent-2); }
.t-rubyflora .divider { background: linear-gradient(90deg, transparent, var(--accent-2), transparent); }
.t-rubyflora .ibtn { border-radius: 999px; border-color: var(--accent-2); color: var(--accent-2); }
.t-rubyflora .ibtn--solid { background: var(--accent-2); color: var(--on-accent); }
.t-rubyflora .pframe { padding: 11px; }
.t-rubyflora .pframe::before { border-radius: 999px 999px 22px 22px; border-color: var(--accent-2); }
.t-rubyflora .pframe::after { background: var(--accent); box-shadow: 0 0 0 4px var(--bg); }
.t-rubyflora .pframe__arch { border-radius: 999px 999px 18px 18px; background: var(--bg-2); }
.t-rubyflora .pframe__init { font-family: var(--serif-r); color: var(--accent-2); background: radial-gradient(circle, #8e2640, #4a0a18); }
.t-rubyflora .countdown div { border-radius: 16px 4px 16px 4px; background: rgba(120,27,49,.88); border-color: var(--line); }
.t-rubyflora .countdown b { font-family: var(--serif-r); color: var(--accent-2); }
.t-rubyflora .music { background: var(--accent); color: #fff; border-color: var(--accent); }
.t-rubyflora .ifoot { border-top-color: var(--line); }
.t-rubyflora .ifld input, .t-rubyflora .ifld textarea, .t-rubyflora .ifld select { border-color: var(--line); background: rgba(255,255,255,.06); color: var(--ink); }
.t-rubyflora .ifld select option { background: #4a0a18; color: var(--ink); }
.t-rubyflora .lstory::before { background: linear-gradient(var(--accent-2), var(--accent), transparent); }
.t-rubyflora .lstory__dot { background: var(--accent-2); box-shadow: 0 0 0 4px var(--bg), 0 0 0 5px var(--line); }

