
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] {
            --color-primary: #46617E;
            --color-secondary: #EAE4D8;
            --color-accent: #6E7B5E;
            --color-background: #F5F1E8;
            --color-text: #55504A;
            --color-heading: #3E4A57;

            --font-heading: 'Playfair Display', serif;
            --font-body: 'Montserrat', sans-serif;
        }

        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] {
            font-family: var(--font-body);
            color: var(--color-text);
            background-color: var(--color-background);
            line-height: 1.6;
            overflow-x: hidden;
        }

                    /* Preview/iframe contexts: hide scrollbar for a cleaner showcase look.
               Scrolling still works (touch + wheel), only the visual bar is hidden. */
            .archive-sheet[data-archive="trino"][data-archive-locale="ru"],.archive-sheet[data-archive="trino"][data-archive-locale="ru"] { scrollbar-width: none; -ms-overflow-style: none; }
            .archive-sheet[data-archive="trino"][data-archive-locale="ru"]::-webkit-scrollbar,.archive-sheet[data-archive="trino"][data-archive-locale="ru"]::-webkit-scrollbar { display: none; width: 0; height: 0; }
        
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] h1,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] h2,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] h3,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] h4,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] h5,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] h6 {
            font-family: var(--font-heading);
            color: var(--color-heading);
            line-height: 1.2;
        }

        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 20px;
        }

        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .section {
            padding: 50px 0;
        }

        @container archive (max-width: 768px) {
            .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .section {
                padding: 30px 0;
            }
        }

        /* Smooth scroll */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] {
            scroll-behavior: smooth;
        }

        /* Loading animation */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .fade-in {
            animation: fadeIn 1s ease-in !important;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(20px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* Alpine.js cloak */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] [x-cloak] {
            display: none !important;
        }

        /* ===== Scroll Reveal Animations ===== */

        /* Base reveal states - elementos ocultos por defecto */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-up,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-down,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-left,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-right,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-scale,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-zoom {
            opacity: 0;
            transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1) !important;
        }

        /* Fade Up - elemento sube desde abajo */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-up {
            transform: translateY(40px);
        }

        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-up.reveal-visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* Fade Down - elemento baja desde arriba */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-down {
            transform: translateY(-40px);
        }

        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-down.reveal-visible {
            opacity: 1;
            transform: translateY(0);
        }

        /* Fade Left - elemento viene desde la derecha */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-left {
            transform: translateX(40px);
        }

        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-left.reveal-visible {
            opacity: 1;
            transform: translateX(0);
        }

        /* Fade Right - elemento viene desde la izquierda */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-right {
            transform: translateX(-40px);
        }

        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-right.reveal-visible {
            opacity: 1;
            transform: translateX(0);
        }

        /* Scale - elemento crece */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-scale {
            transform: scale(0.9);
        }

        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-scale.reveal-visible {
            opacity: 1;
            transform: scale(1);
        }

        /* Zoom - elemento hace zoom in */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-zoom {
            transform: scale(1.1);
        }

        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-zoom.reveal-visible {
            opacity: 1;
            transform: scale(1);
        }

        /* Delays para animar elementos secuencialmente */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-delay-100 { transition-delay: 100ms !important; }
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-delay-200 { transition-delay: 200ms !important; }
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-delay-300 { transition-delay: 300ms !important; }
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-delay-400 { transition-delay: 400ms !important; }
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-delay-500 { transition-delay: 500ms !important; }

        /* Duración de animaciones */
        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-duration-slow {
            transition-duration: 1.2s !important;
        }

        .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-duration-fast {
            transition-duration: 0.5s !important;
        }

        /* Responsive - reducir movimiento en móviles */
        @container archive (max-width: 768px) {
            .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-up,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-down {
                transform: translateY(20px);
            }

            .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-left,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-right {
                transform: translateX(20px);
            }

            .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-up.reveal-visible,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-down.reveal-visible,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-left.reveal-visible,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-right.reveal-visible {
                transform: translate(0, 0);
            }
        }

        /* Respetar preferencias de accesibilidad */
        @media (prefers-reduced-motion: reduce) {
            .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-up,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-down,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-left,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-fade-right,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-scale,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .reveal-zoom {
                opacity: 1;
                transform: none;
                transition: none !important;
            }
        }

        /* Music animations */
        @keyframes musicIconPulse {
            0%, 100% { transform: scale(1); opacity: 1; }
            50% { transform: scale(1.08); opacity: 0.85; }
        }

        @keyframes musicBtnPulse {
            0%, 100% { box-shadow: 0 4px 16px rgba(0,0,0,0.25); }
            50% { box-shadow: 0 4px 24px rgba(122,46,58,0.5); }
        }
    

/* ══════════════════════════════════════════════════════════════
   FLORENTIA — atardecer toscano + verde oliva · prefijo fl
   ══════════════════════════════════════════════════════════════ */

/* Swarsh Daisy (fuente exclusiva de Jardin, de Andrés: Regular + Italic, subset woff2
   latin + tildes + Ñ). Licencia: MarvaDesign / Febrie Setiawan, documentar origen. */



/* Sloop Script: acento caligráfico PROVISIONAL (reusa el subset de Perle) hasta que
   Andrés entregue la script propia de Jardin. */


/* Satoshi (complementaria de Jardin, variable 300-900, Fontshare Free Font License:
   ver public/fonts/trino/LICENSE-Satoshi-FFL.txt) */


/* La intro de video toma la fuente exclusiva para el monograma del centro de la corona */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] { --vei-mono-font: 'Cormorant Garamond', 'Cormorant Garamond', serif; }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap {
    container-type: inline-size;
    position: relative;

    /* ── Tokens de paleta (de $colors) ── */
    --tr-sunset:       #46617E;
    --tr-sunset-dim:   rgba(70,97,126,0.10);
    --tr-sunset-soft:  rgba(70,97,126,0.16);
    --tr-sunset-border:rgba(70,97,126,0.30);
    --tr-cream:        #EAE4D8;
    --tr-olive:        #6E7B5E;
    --tr-olive-dim:    rgba(110,123,94,0.12);
    --tr-olive-soft:   rgba(110,123,94,0.20);
    --tr-olive-border: rgba(110,123,94,0.32);
    --tr-bg:           #F5F1E8;
    --tr-text:         #55504A;
    --tr-heading:      #3E4A57;
    --tr-head-soft:    rgba(62,74,87,0.14);
    /* Superficies (tokenizadas para soportar paletas claras y oscuras) */
    --tr-paper:        #F1EBE1;
    --tr-paper-feat:   #F3EEE5;
    --tr-card:         #FCFAF4;
    --tr-surface:      #F1ECE2;
    --tr-keyline:      rgba(110, 123, 94, 0.38);
    --tr-btn-hover:    #3A5069;
    --tr-btn-bg:       #46617E;      /* fondo de botón: bronce, blanco encima pasa AA */
    --tr-ink-gold:     #4E5B67;    /* tinta bronce del texto pequeño informativo */
    --tr-on-accent:    #FFFFFF;
    --tr-frame:        #FFFFFF;
    --tr-ph-fill:      linear-gradient(160deg, #EAEFF2 0%, #D7E0E4 100%);
    --tr-amp:          rgba(70, 97, 126, 0.14);
    --tr-hero-bg:      radial-gradient(92% 55% at 50% -6%, rgba(70,97,126,0.07), transparent 60%), linear-gradient(165deg, #FAF7F0 0%, #F5F1E8 55%, #EFEADF 100%);
    --tr-hero-ink:     #55504A;
    --tr-hero-heading: #46617E;
    --tr-hero-accent:  #6E7B5E;
    --tr-hero-line:    rgba(110, 123, 94, 0.55);
    /* Relieve de foil: el texto dorado va estampado en caliente sobre el papel, así
       que capta luz arriba-izquierda (misma dirección que el estampado y la seda) y
       deja una sombra corta y CÁLIDA abajo-derecha. Nunca gris ni negra: sobre crema
       eso ensucia. --tr-foil para display, --tr-foil-sm para versalitas pequeñas. */
    --tr-foil:    -0.5px -0.5px 0 rgba(255,253,248,0.85),
                   0.7px 1.1px 1.6px rgba(74,90,110,0.30),
                   0 2px 7px rgba(74,90,110,0.10);
    --tr-foil-sm: -0.4px -0.4px 0 rgba(255,253,248,0.7),
                   0.4px 0.7px 1px rgba(74,90,110,0.24);
    /* Velo sobre la seda y halo tras los títulos: el crema del PAPEL en rgba, así
       cada paleta empalma seda↔papel sola (si el papel cambia y esto no, escalón) */
    --tr-veil-rgb: 241,235,225;
    /* Sombra de "papel sobre papel" para todo lo que se apoya en la mesa (tarjetas,
       hoja del calendario, nota, fotos): amplia y suave + contacto corto, siempre cálida */
    --tr-paper-shadow: drop-shadow(0 16px 26px rgba(90,70,60,0.20)) drop-shadow(0 2px 3px rgba(90,70,60,0.16));
    /* Capullo blush (sustituye a la perla de Perle): día del calendario */
    /* Cinta washi blush translúcida: sujeta las fotos (gesto del flat-lay botánico) */
    /* El hilo rojo del destino: FIJO en todas las paletas (es el gesto de marca de
       Trino y el del video del intro); las paletas rotan la tinta, no el hilo */
    --tr-thread:       #9E322B;
    --tr-thread-light: #C1705C;
    /* Botánica protagonista (portada y secciones protagonista), dos cortes */
    /* Papel de algodón con grano, sin motivo (secciones del cuerpo) */
    --tr-paper-tex:      url('/media/archive/nupcii.com/images/templates/trino/paper-acuarela.webp');

    /* ── Tokens estructurales (hardcoded) ── */
    /* Swarsh Daisy = la voz principal de Jardin (fuente exclusiva); Sloop = acento caligráfico;
       el cuerpo usa la complementaria (Jost provisional hasta definir el par definitivo C4) */
    --font-tr-display: 'Cormorant Garamond', 'Cormorant Garamond', serif;
    --font-tr-name:    'Cormorant Garamond', 'Playfair Display', serif;        /* nombres del hero */
    --font-tr-script:  'Great Vibes', 'Great Vibes', cursive;     /* acento caligráfico */
    --font-tr-body:    'Montserrat', 'Jost', 'Montserrat', sans-serif;
    --tr-radius:       3px;
    --tr-maxw:         1080px;
    /* Onda (wave) usada como transición entre secciones */
    --tr-wave-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 80' preserveAspectRatio='none'%3E%3Cpath d='M0,80 L0,46 C200,8 400,8 600,40 C800,72 1000,72 1200,40 L1200,80 Z' fill='%23000'/%3E%3C/svg%3E");
    --tr-shadow:       0 24px 60px -28px rgba(61,46,32,0.45);
    --tr-shadow-sm:    0 12px 36px -20px rgba(61,46,32,0.35);

    /* Campo cálido CONTINUO para toda la página: atardecer arriba → crema → durazno abajo.
       Las secciones son transparentes y dejan fluir este campo, sin líneas duras entre ellas. */
    background:
        radial-gradient(125% 55% at 50% 0%, rgba(70,97,126,0.16) 0%, transparent 46%),
        linear-gradient(180deg, #EAE4D8 0%, #F5F1E8 15%, #F5F1E8 66%, #EAE4D8 100%);
    background-color: #F5F1E8;
    color: var(--tr-text);
    font-family: var(--font-tr-body);
    font-weight: 300;
    line-height: 1.7;
    letter-spacing: 0.3px;
    overflow-x: hidden;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap * { box-sizing: border-box; }
/* Resets con :where() → especificidad 0 para que las reglas de cada componente
   (márgenes de párrafos, títulos) ganen siempre por orden de aparición. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap :where(h1, h2, h3) { margin: 0; font-weight: 400; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap :where(p) { margin: 0; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap :where(a) { color: inherit; }

/* ── Textura de papel (grano procedural SVG) sobre toda la página ──
   soft-light = añade textura sin oscurecer ni teñir; no requiere imagen externa. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap::after {
    content: "";
    position: absolute; inset: 0; z-index: 40;
    pointer-events: none;
    opacity: 0.55;
    mix-blend-mode: soft-light;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E");
    background-size: 300px 300px;
}

/* ── Entrada cinematográfica (auto-play, escalonada con --d) ── */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap .tr-rise {
    opacity: 0;
    transform: translateY(28px);
    animation: trRise 1s cubic-bezier(.2,.7,.2,1) both !important;
    animation-delay: var(--d, 0s) !important;
}
@keyframes trRise { to { opacity: 1; transform: none; } }
/* Coordinación con el intro del sobre: mientras está abierto, el hero retiene su entrada;
   al cerrarse el sobre, la dispara escalonada (reveal). En el customizer (sin intro) anima al cargar. */
@media (prefers-reduced-motion: no-preference) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"].fl-intro-pending .tr-wrap .tr-rise { animation: none !important; }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"].fl-intro-done .tr-wrap .tr-rise {
        animation: trRise 1s cubic-bezier(.2,.7,.2,1) both !important;
        animation-delay: var(--d, 0s) !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap .tr-rise { animation: none !important; opacity: 1; transform: none; }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-arch-photo,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-embers span { animation: none !important; }
}

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-container {
    max-width: var(--tr-maxw);
    margin: 0 auto;
    padding: 0 28px;
    position: relative;
    z-index: 2;
}

/* The polaroid carousel sizes its slides from 100vw and reserves ~20px per side.
   The 28px container padding was clipping the card on mobile; trim it for the
   gallery section so it fits like the other templates (Velvet Rose, Oasis). */
@container archive (max-width: 768px) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-sec:has(.tr-gallery-host) .tr-container { padding-left: 12px; padding-right: 12px; }
}

/* ─────────── Secciones + transición tipo onda (wave) ─────────── */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-sec {
    padding: clamp(72px, 11cqw, 130px) 0;
    position: relative;
    z-index: 0;
}
/* Cuerpo "papel claro": UN SOLO tono uniforme para todo el cuerpo (la única transición de
   color es portada-oliva → cuerpo-papel). Las secciones se separan por aire y ornamentos,
   no por bandas de color. Textura de papel global (.tr-wrap::after). */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-bg-bg,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-bg-cream { background: var(--tr-paper); }  /* papel crema cálido, uniforme en todo el cuerpo */

/* PAPEL DE ALGODÓN CON GRANO, sin motivo: el mismo papel sobre el que vive la
   corona del intro continúa en las secciones del cuerpo. A diferencia de Perle
   (donde el papel estampado "habla" y la seda calla), en Jardin el papel calla y
   hablan la botánica a sangre de las secciones protagonista y los ornamentos.
   Asset: lino crudo de Andrés (fondo-lino.png), tono medio llevado al token
   --tr-paper (#F2EBDD) y fusionado consigo mismo desplazado media tesela para que
   repita sin costura (wrap-blend con rampa de 140px; tesela 1000x643, q74). */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-bg-bg::before,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-bg-cream::before {
    content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image: var(--tr-paper-tex);
    background-repeat: repeat;
    /* A 520px (la mitad de la escala real): la trama fotográfica es gruesa y a
       escala real se leía como rejilla de cañamazo; así iguala el lino FINO del
       póster del intro (hilos ~1.5px en un teléfono) */
    background-size: 520px;
    background-position: center;
    /* Como --tr-paper es EXACTAMENTE el tono medio del lino, la opacidad comprime
       la trama contra ese tono sin desplazar el color: controla la presencia del tejido */
    opacity: 0.35;   /* perilla: grano discreto (Andrés: el fondo no debe tener relevancia) */
}
/* El estampado no debe arrancar de golpe contra la seda: donde la sección vecina
   es de seda (portada, itinerario, regalos, footer) la textura entra o sale con un
   degradado largo, y el papel liso hace de bisagra. Entre dos secciones de papel
   NO se desvanece: ahí el estampado es continuo. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap {
    --tr-fade: clamp(90px, 14cqw, 190px);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] :is(.tr-hero, .tr-bg-olive) + :is(.tr-bg-bg, .tr-bg-cream)::before {
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 var(--tr-fade));
            mask-image: linear-gradient(to bottom, transparent, #000 var(--tr-fade));
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] :is(.tr-bg-bg, .tr-bg-cream):has(+ :is(.tr-bg-olive, .tr-footer))::before {
    -webkit-mask-image: linear-gradient(to top, transparent, #000 var(--tr-fade));
            mask-image: linear-gradient(to top, transparent, #000 var(--tr-fade));
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] :is(.tr-hero, .tr-bg-olive) + :is(.tr-bg-bg, .tr-bg-cream):has(+ :is(.tr-bg-olive, .tr-footer))::before {
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 var(--tr-fade), #000 calc(100% - var(--tr-fade)), transparent);
            mask-image: linear-gradient(to bottom, transparent, #000 var(--tr-fade), #000 calc(100% - var(--tr-fade)), transparent);
}
/* Save-Data / reduced-motion no aplican aquí, pero sí conviene bajar el estampado
   cuando el usuario pide menos estímulo visual */
@media (prefers-reduced-transparency: reduce) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-bg-bg::before,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-bg-cream::before { opacity: 0.28; }
}

/* "Cinta": banda de imagen a ancho completo, muy horizontal, debajo de /guest */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ribbon {
    width: 100%;
    height: clamp(120px, 20cqw, 260px);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
/* Teléfono: el ramo que sigue a la cinta (media altura ~104px) tapaba la cinta de
   120px. Margen bajo la cinta para que el ramo baje y solo monte ~40px sobre su
   borde inferior; en escritorio (cinta 260px) no hace falta. @container y no
   @media: así el marco del preview lo hereda sin espejo. */
@container (max-width: 767px) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ribbon:has(+ .tr-divide--garland) { margin-bottom: 40px; }
}
/* (El sistema de "sección protagonista" bg-olive se retiró: Trino es UN solo
   mundo de papel continuo, decisión de Andrés; la junta papel↔papel no existe.) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-container { z-index: 2; }

/* ─────────── Divisores entre secciones (sistema de dos ritmos) ───────────
   La regla compositiva de Trino: los pajaritos y las flores sueltas de acuarela
   acompañan a la pareja por toda la invitación. Jerarquía (un gesto por nivel):
   - Capítulos (juntas fuertes): el RAMILLETE pintado posado sobre la junta,
     como un ramo dejado sobre la costura de dos hojas.
   - Liana entre secciones de papel: filete de pincel fino en salvia + capullo.
   - Cabeceras: la flor azul pequeña (el eco del azulejo).
   Los divisores son hermanos de las secciones con altura 0: el recurso se centra en
   la junta con translateY(-50%) y pinta por encima de ambas (z-index 3; cada
   sección es su propio contexto con z 0). Las secciones vecinas ganan padding. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divide { position: relative; height: 0; z-index: 3; pointer-events: none; }
/* Pintura plana sobre el papel: sin drop-shadow (la acuarela no es un objeto apoyado) */
/* El MENSAJERO: el pajarito en vuelo llevando una ramita, con la banda de flores
   sueltas a los lados (el equivalente de la guirnalda de Lazo; el ramillete queda
   en exclusiva para la esquina del calendario). */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divide-garland {
    position: absolute; left: 50%; top: 0;
    transform: translate(-50%, -50%);
    width: clamp(300px, 88cqw, 600px); aspect-ratio: 2070 / 343;   /* perilla: tamaño del divisor */
    background: url('/media/archive/nupcii.com/images/templates/trino/divisor-pajarito.webp') center / contain no-repeat;
}
/* Junta del cierre: el flourish de cabeceras a escala de capítulo (sin pájaro,
   para no triplicar pájaros con el remate del footer justo debajo) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divide-flourish {
    position: absolute; left: 50%; top: 0;
    transform: translate(-50%, -50%);
    width: clamp(230px, 56cqw, 360px); aspect-ratio: 1004 / 162;   /* perilla: tamaño de la junta del cierre */
    background: url('/media/archive/nupcii.com/images/templates/trino/sep-cabecera.webp') center / contain no-repeat;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divide--vine {
    display: flex; align-items: center; justify-content: center; gap: 14px;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divide-line { display: none; }   /* la liana es el ornamento solo, sin líneas CSS */
/* El par de hojitas con el puntito de lavanda (lámina de separadores) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divide-sprig {
    flex: none; width: clamp(88px, 20cqw, 128px); aspect-ratio: 382 / 70;
    background: url('/media/archive/nupcii.com/images/templates/trino/sep-liana.webp') center / contain no-repeat;
}
/* Aire alrededor de cada junta, según el peso del divisor. La portada no es .tr-sec:
   su padding inferior crece para que la guirnalda no pise la sede ni la fecha. */
/* El ramo mide ~la mitad que la cenefa vieja: juntas más ligeras, UNA regla en
   cqw que escala igual en el teléfono real y en el marco del preview (sin
   gemelos @container). Tras la portada, la pintura termina más arriba para que
   el ramo se pose en el papel rozando su borde de agua (var del hero). */

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divide--garland + :is(.tr-sec, .tr-footer) { padding-top: clamp(76px, 19cqw, 110px); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-sec:has(+ .tr-divide--garland) { padding-bottom: clamp(76px, 19cqw, 110px); }
/* El flourish es más bajo que el mensajero: junta un punto más ligera */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divide--flourish + .tr-footer { padding-top: clamp(60px, 15cqw, 88px); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-sec:has(+ .tr-divide--flourish) { padding-bottom: clamp(60px, 15cqw, 88px); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divide--vine + .tr-sec { padding-top: clamp(88px, 12cqw, 140px); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-sec:has(+ .tr-divide--vine) { padding-bottom: clamp(88px, 12cqw, 140px); }
/* Solo escritorio y solo esta junta: la nota de invitados deja colgar el eucalipto
   prensado sobre la guirnalda; se separan con aire extra */
@container (min-width: 900px) {
    /* El dúo de fotos (oculto en escritorio) puede quedar entre la nota y la
       guirnalda como hermano en el DOM: se cubren los dos casos */
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-sec:has(+ .tr-divide--garland),.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-sec:has(+ .tr-duo-sec + .tr-divide--garland) { padding-bottom: clamp(250px, 24cqw, 300px); }
}


/* ─────────── Cabecera de sección ─────────── */
/* El encabezado se reserva su claro: en una plancha de imprenta el dibujo deja
   sitio al texto. Halo del MISMO tono del papel (#EFEAE1 = tono medio del
   estampado), así no se ve como una mancha, solo alisa el relieve bajo el título.
   Solo en las secciones de papel; las de seda no lo necesitan. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-bg-bg .tr-head::before,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-bg-cream .tr-head::before {
    content: ""; position: absolute; z-index: -1; pointer-events: none;
    left: 50%; top: 46%; transform: translate(-50%, -50%);
    width: min(124%, 940px); height: 190%;
    background: radial-gradient(ellipse at center,
        var(--tr-paper) 0%,
        rgba(var(--tr-veil-rgb),0.86) 40%,
        rgba(var(--tr-veil-rgb),0) 72%);
}

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-head { text-align: center; margin-bottom: clamp(44px, 6cqw, 70px); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-head-title {
    font-family: var(--font-tr-display);
    font-size: clamp(34px, 6cqw, 56px);
    font-style: italic;
    font-weight: 500;
    color: var(--tr-heading);
    line-height: 1.08;
    text-shadow: var(--tr-foil);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-head-sub {
    font-family: var(--font-tr-body);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 3.5px;
    text-transform: uppercase;
    color: var(--tr-ink-gold);   /* AA: en oro quedaba <3:1 sobre el papel */
    margin-top: 14px;
    text-shadow: var(--tr-foil-sm);
}
/* Separador ornamental: hairline que se desvanece hacia los lados + detalle central (hojita) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divider {
    display: flex; align-items: center; justify-content: center;
    gap: clamp(14px, 2.4cqw, 22px);
    width: clamp(180px, 36cqw, 300px);
    margin: clamp(20px, calc(var(--archive-vh, 1svh) * 3), 30px) auto 0;
}
/* Divisor de cabeceras: el FLOURISH propio (tallo salvia simétrico con la flor
   azul al centro y capullos rosa; de la lámina de separadores de Andrés). El
   filete de la lámina de portada queda en exclusiva para la portada. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divider-mark {
    display: block; flex: none;
    width: clamp(150px, 32cqw, 215px); aspect-ratio: 1004 / 162;
    background: url('/media/archive/nupcii.com/images/templates/trino/sep-cabecera.webp') center / contain no-repeat;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divider-line { display: none; }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divider-line:first-child {
    -webkit-mask: linear-gradient(to right, transparent, #000 60%);
            mask: linear-gradient(to right, transparent, #000 60%);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divider-line:last-child {
    -webkit-mask: linear-gradient(to left, transparent, #000 60%);
            mask: linear-gradient(to left, transparent, #000 60%);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-divider { gap: clamp(10px, 1.8cqw, 16px); width: clamp(150px, 32cqw, 240px); }

/* ─────────── Flora de Perle ───────────
   Botánica dibujada a mano (PNG con alpha) aplicada como MÁSCARA CSS: la tinta
   sale de var(--tr-olive), así el ornamento sigue la paleta que elija la pareja. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-botanical {
    display: inline-block;
    background-color: var(--tr-olive);
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-position: center;  mask-position: center;
    -webkit-mask-size: contain;     mask-size: contain;
}
/* Marca de agua en tarjetas de papelería (dedicada, regalos): rama en las esquinas.
   El selector va con .tr-wrap delante a propósito: `.tr-dedicated > *` (más abajo)
   fija position:relative a los hijos y con igual especificidad ganaría por orden. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap .tr-card-branch {
    position: absolute; z-index: 0; pointer-events: none;
    bottom: clamp(10px, 2cqw, 20px);
    width: clamp(44px, 6cqw, 66px); height: clamp(88px, 12cqw, 132px);
    opacity: 0.17;
    background-color: var(--tr-olive);
    -webkit-mask: var(--offline-mask-4a600cf7b77c) bottom center / contain no-repeat;
            mask: var(--offline-mask-4a600cf7b77c) bottom center / contain no-repeat;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap .tr-card-branch-l { left: clamp(12px, 2.4cqw, 24px);  transform: scaleX(-1); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-wrap .tr-card-branch-r { right: clamp(12px, 2.4cqw, 24px); }


/* ═══════════════ HERO — LA LÁMINA ═══════════════
   Toda la portada es UN recurso de acuarela (lamina-portada.webp, 941x1672):
   arco de pincel con los pajaritos del intro posados en la cima, flores
   trepando por las patas, filete separador y mitad inferior limpia para los
   textos. La foto vive detrás, recortada a la ventana del arco (insets y radio
   MEDIDOS del asset: patas interiores x 160/781, ápice y 215, corte inferior
   y 1085, de un lienzo 941x1672); el arte monta encima y esconde la junta,
   como el marco bordado de Lazo pero a escala de portada. Móvil: la lámina
   llena el ancho; escritorio: centrada con aire, tipo lámina enmarcada. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero {
    position: relative;
    min-height: calc(var(--archive-vh, 1svh) * 100);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: clamp(14px, calc(var(--archive-vh, 1svh) * 2), 24px);
    overflow: hidden; isolation: isolate;
    color: var(--tr-hero-ink);
    background: var(--tr-hero-bg);
    /* Abajo más aire: ahí se posa el ramo del divisor de capítulo (media altura
       ~104-142px) SIN pisar la leyenda */
    padding: clamp(28px, calc(var(--archive-vh, 1svh) * 4), 48px) 16px clamp(110px, calc(var(--archive-vh, 1svh) * 15), 150px);
}

/* Transición al cuerpo: el papel del hero ya es el papel del cuerpo */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -1px;
    height: clamp(40px, 6cqw, 80px); z-index: 5; pointer-events: none;
    background: var(--tr-paper);
    -webkit-mask: linear-gradient(to top, #000, rgba(0,0,0,0));
            mask: linear-gradient(to top, #000, rgba(0,0,0,0));
}

/* Fondo: el papel de acuarela de la plantilla (tesela extraída del still del intro) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-silk {
    position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image: var(--tr-paper-tex);
    background-repeat: repeat;
    background-size: 520px;
    background-position: center;
    opacity: 0.5;    /* perilla: grano discreto, como el cuerpo */
}

/* ── El arco (pieza superior de la lámina, 941x1110) ── */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-sheet {
    position: relative; z-index: 2;
    /* ancho limitado también por la altura disponible: ~400px ≈ paddings +
       filete + nombres + subtítulo + fecha/sede con aire */
    width: min(100%, 460px, calc((calc(var(--archive-vh, 1svh) * 100) - 400px) * (941 / 1110)));
    aspect-ratio: 941 / 1110;
}
/* La ventana del arco (fracciones del crop del arco; medidas del asset madre:
   patas interiores x 160/781, ápice y 215, corte inferior y 1085 de 941x1672) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-window {
    position: absolute;
    left: 17.5%; right: 17.5%; top: 19.4%; bottom: 2.3%;
    border-radius: 50% 50% 0 0 / 35.6% 35.6% 0 0;
    overflow: hidden;
    background: var(--tr-ph-fill);
    z-index: 1;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-photo-img {
    position: absolute; inset: 0; display: block;
    width: 100%; height: 100%; object-fit: cover;
    /* Un punto desaturada: pintada en la hoja, no papel fotográfico */
    filter: saturate(0.96) sepia(0.03);
    animation: trKen 36s ease-in-out infinite alternate !important;
}
@keyframes trKen { from { transform: scale(1.015); } to { transform: scale(1.075); } }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-sheet-art {
    position: absolute; inset: 0; z-index: 2; pointer-events: none;
    background: url('/media/archive/nupcii.com/images/templates/trino/lamina-arco.webp') center / 100% 100% no-repeat;
}

/* ── Textos en flujo bajo el arco ── */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-filete {
    display: block; position: relative; z-index: 2;
    width: clamp(110px, 32cqw, 150px); aspect-ratio: 318 / 36;
    background: url('/media/archive/nupcii.com/images/templates/trino/lamina-filete.webp') center / contain no-repeat;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-names {
    position: relative; z-index: 2;
    display: flex; flex-direction: column; align-items: center;
    text-align: center;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-name {
    position: relative; margin: 0; width: 100%;
    font-family: var(--font-tr-name); font-weight: 400; font-style: normal;
    font-size: clamp(32px, 9cqw, 48px); line-height: 1.08; color: var(--tr-hero-heading);
    letter-spacing: 0.01em;
    text-shadow: var(--tr-foil);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-amp {
    display: block;
    font-family: var(--font-tr-script);
    font-size: clamp(17px, 4cqw, 26px); line-height: 0.9;
    color: var(--tr-hero-accent);
    margin: clamp(2px, calc(var(--archive-vh, 1svh) * 0.6), 8px) 0;
}
/* El subtítulo libre del customizer, entre los nombres y la fecha: en flujo,
   con las líneas que necesite */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-caption {
    position: relative; z-index: 2;
    width: min(92%, 560px);
    font-family: var(--font-tr-body);
    font-size: clamp(9.5px, 2.6cqw, 12px); font-weight: 400;
    letter-spacing: 0.26em; text-transform: uppercase; color: var(--tr-hero-heading);
    line-height: 1.9;
    text-align: center;
    text-shadow: var(--tr-foil-sm);
}
/* Fecha y sede, flanqueadas por las ramitas de las esquinas de la lámina */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-tail {
    position: relative; z-index: 2;
    display: flex; flex-direction: column; align-items: center;
    text-align: center;
    padding: 2px clamp(58px, 15cqw, 80px);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tail-sprig {
    position: absolute; top: 50%; translate: 0 -50%;
    width: clamp(42px, 11cqw, 58px); aspect-ratio: 162 / 166;
    background: center / contain no-repeat;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tail-sprig--l { left: 0; background-image: url('/media/archive/nupcii.com/images/templates/trino/lamina-esquina-izq.webp'); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tail-sprig--r { right: 0; background-image: url('/media/archive/nupcii.com/images/templates/trino/lamina-esquina-der.webp'); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-meta {
    display: flex; align-items: center; justify-content: center; gap: 12px;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hm-line {
    display: block; width: clamp(20px, 5cqw, 40px); height: 1.5px; border-radius: 1px;
    background: var(--tr-olive);
    opacity: 0.5;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hm-text {
    font-family: var(--font-tr-body);
    font-size: clamp(10px, 2.9cqw, 12.5px); letter-spacing: 2.5px; text-transform: uppercase;
    color: var(--tr-hero-ink);
    text-shadow: var(--tr-foil-sm);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-place {
    font-family: var(--font-tr-display); font-style: italic;
    font-size: clamp(13px, 3.6cqw, 18px); color: var(--tr-ink-gold);
    margin-top: 8px;
    text-shadow: var(--tr-foil-sm);
}

/* ── Escritorio: el arco APAISADO propio (lamina-arco-desktop.webp, 1672x941:
      arco grande centrado con las guirnaldas extendiéndose a lo ancho).
      Ventana medida de SU asset: patas interiores x 568/1104, ápice y 165,
      corte inferior y 870. Los textos en flujo no cambian. ── */
@container (min-width: 900px) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-sheet {
        width: min(92%, 960px, calc((calc(var(--archive-vh, 1svh) * 100) - 430px) * (1672 / 941)));
        aspect-ratio: 1672 / 941;
    }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-sheet-art { background-image: url('/media/archive/nupcii.com/images/templates/trino/lamina-arco-desktop.webp'); }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-window {
        left: 33.95%; right: 33.95%; top: 17.5%; bottom: 7.55%;
        border-radius: 50% 50% 0 0 / 38% 38% 0 0;
    }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-name { font-size: clamp(40px, 4.2cqw, 54px); }
}

@media (prefers-reduced-motion: reduce) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-hero-photo-img { animation: none !important; }
}

/* ═══════════════ COUNTDOWN — TARJETITAS DE PAPEL (cantos limpios) ═══════════════
   Cuatro place cards de papel de algodón sobre la mesa, cada una con su giro y su
   trozo de cinta washi; el número en Swarsh Daisy tinta. (Perle: cifras con hairlines.) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cd-sec::after { display: none; }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cd { display: flex; align-items: flex-start; justify-content: center; gap: clamp(14px, 4cqw, 38px); flex-wrap: nowrap; padding-top: 12px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cd-unit {
    display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cd-num {
    font-family: var(--font-tr-display);
    font-size: clamp(38px, 9.4cqw, 68px);
    font-weight: 400; line-height: 1;
    color: var(--tr-heading);
    font-variant-numeric: tabular-nums;
    text-shadow: var(--tr-foil);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cd-lbl {
    font-family: var(--font-tr-body);
    font-size: clamp(8.5px, 1.1cqw, 10.5px); font-weight: 500;
    letter-spacing: 0.26em; text-transform: uppercase;
    color: var(--tr-ink-gold);
    padding-left: 0.26em;
}
/* Separador: filete vertical fino a la altura de las cifras */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cd-sep {
    width: 1px; height: clamp(30px, 7cqw, 52px);
    margin-top: clamp(4px, 1cqw, 8px);
    background: var(--tr-olive);
    opacity: 0.5;   /* perilla: presencia del separador */
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cd-caption {
    text-align: center;
    margin-top: clamp(28px, 4.5cqw, 48px);
    font-family: var(--font-tr-script);
    font-size: clamp(34px, 5cqw, 58px);
    line-height: 1;
    color: var(--tr-heading);
}

/* ═══════════════ CALENDARIO — PÁGINA DE AGENDA ═══════════════
   Cuadrícula del mes arriba y zona de notas rayada abajo; el día de la boda rodeado
   a bolígrafo; la foto destacada va ENCIMA, pegada con washi sobre el borde derecho
   de la hoja (visible entera), y una peonía prensada cruza la esquina superior
   izquierda. Cantos limpios: todo el relieve lo hacen la sombra y las capas. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-date {
    position: relative;
    width: min(340px, 86%);
    margin: clamp(44px, 6.5cqw, 78px) auto 0;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-date:has(.tr-date-photo) { margin-bottom: clamp(52px, 8cqw, 80px); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal {
    position: relative; z-index: 1;
    width: 100%;
    padding: clamp(18px, 2.6cqw, 26px) clamp(16px, 2.4cqw, 24px) 0;
    background: var(--tr-card);
    border-radius: 2px;
    transform: rotate(-1.4deg);   /* la hoja apoyada, como en la referencia */
    filter: var(--tr-paper-shadow);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal-month {
    font-family: var(--font-tr-display); font-style: italic;
    font-size: clamp(19px, 2.4cqw, 25px); line-height: 1.1;
    color: var(--tr-heading); text-align: center; text-transform: capitalize;
    text-shadow: var(--tr-foil);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal-grid {
    display: grid; grid-template-columns: repeat(7, 1fr);
    margin-top: clamp(12px, 1.8cqw, 18px);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal-dow {
    font-family: var(--font-tr-body);
    font-size: 9.5px; font-weight: 500; letter-spacing: 0.14em;
    text-transform: uppercase; color: var(--tr-ink-gold);
    text-align: center; padding-bottom: 9px;
    border-bottom: 1px solid var(--tr-keyline);
    margin-bottom: 7px;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal-day {
    position: relative;
    font-family: var(--font-tr-body); font-size: 12.5px;
    color: var(--tr-text); text-align: center;
    padding: 6px 0; z-index: 1;
    font-variant-numeric: tabular-nums;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal-day.is-out { opacity: 0.24; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal-day.is-day { color: var(--tr-heading); font-weight: 600; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal-ring {
    position: absolute; left: 50%; top: 50%;
    width: 34px; height: 34px; transform: translate(-50%, -50%) rotate(-12deg);
    color: var(--tr-hero-heading);
    opacity: 0.9; pointer-events: none;
}
/* Pie de la hoja: el día de la semana. La zona de notas rayada (el toque de
   agenda) solo existe en escritorio cuando la instantánea va pegada sobre ella;
   sin foto, o en móvil (donde la foto vive en el dúo), sería un hueco vacío. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal-foot {
    position: relative;
    margin: clamp(10px, 1.6cqw, 16px) calc(-1 * clamp(16px, 2.4cqw, 24px)) 0;
    padding: 4px clamp(16px, 2.4cqw, 24px) clamp(14px, 2cqw, 20px);
}
@container (min-width: 900px) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-date:has(.tr-date-photo) .tr-cal-foot {
        padding-top: 6px;
        min-height: clamp(118px, 17cqw, 150px);
        background: repeating-linear-gradient(to bottom, transparent 0 27px, var(--tr-keyline) 27px 28px);
        background-origin: content-box;
    }
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal-weekday {
    font-family: var(--font-tr-display); font-style: italic;
    font-size: clamp(18px, 2.2cqw, 22px); line-height: 28px;
    color: var(--tr-heading); text-align: center;
    text-transform: capitalize;
    text-shadow: var(--tr-foil);
    margin: 0;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-date:has(.tr-date-photo) .tr-cal-weekday { text-align: left; padding-left: 2px; max-width: 52%; }
/* Foto instantánea ENCIMA de la hoja, pegada con washi, montando el borde derecho */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-date-photo {
    position: absolute; z-index: 3; margin: 0;
    right: clamp(-46px, -12%, -22px); bottom: clamp(-44px, -10%, -18px);
    width: 44%; aspect-ratio: 3 / 3.8;
    padding: 7px 7px 20px;
    background: var(--tr-frame);
    border-radius: 1px;
    transform: rotate(5deg);
    filter: var(--tr-paper-shadow);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-date-photo-img { width: 100%; height: 100%; background-size: cover; background-position: center; }
/* Peonía prensada cruzando la esquina superior izquierda de la hoja */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal-flower {
    position: absolute; z-index: 4; pointer-events: none;
    left: -13%; top: -11%;
    width: 38%; aspect-ratio: 376 / 519;
    background: url('/media/archive/nupcii.com/images/templates/trino/ramillete.webp') center / contain no-repeat;
    transform: rotate(-12deg);
}
/* Ramita de lavanda montando el borde derecho de la hoja */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cal-sprig {
    position: absolute; z-index: 4; pointer-events: none;
    right: -11%; top: 30%;
    width: 20%; aspect-ratio: 263 / 521;
    background: url('/media/archive/nupcii.com/images/templates/trino/flor-lavanda.webp') center / contain no-repeat;
    transform: rotate(16deg);
}
@container (max-width: 620px) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-date { width: min(330px, 82%); }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-date-photo { width: 46%; right: -10%; }
}

/* ═══════════════ INVITACIÓN DEDICADA — NOTA DE PAPEL ═══════════════
   Una nota de papel de algodón con borde deckle, la mini corona arriba, el nombre del
   invitado en Swarsh Daisy y el cupo como sello de tinta (Perle: tarjeta con doble filete). */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dedicated {
    position: relative;
    max-width: 620px; margin: 0 auto; text-align: center;
    padding: clamp(56px, 7.5cqw, 88px) clamp(34px, 6cqw, 70px) clamp(48px, 6.5cqw, 76px);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-note-paper {
    position: absolute; inset: 0; z-index: 0;
    background: var(--tr-card);
    border-radius: 2px;
    filter: var(--tr-paper-shadow);
    transform: rotate(-0.6deg);
}
/* Eucalipto prensado (herbario de Andrés) cruzando la esquina inferior izquierda */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-note-pressed {
    position: absolute; z-index: 1; pointer-events: none;
    left: -7%; bottom: -9%;
    /* Ramita de eucalipto de la lámina de flores (acuarela plana: sin sombra) */
    width: clamp(78px, 14cqw, 124px); aspect-ratio: 295 / 510;
    background: url('/media/archive/nupcii.com/images/templates/trino/sprig-euca.webp') center / contain no-repeat;
    transform: rotate(22deg);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dedicated > :not(.tr-note-paper):not(.tr-note-pressed):not(.tr-ded-birds) { position: relative; z-index: 2; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-birds {
    display: block;
    position: absolute; top: 0; left: 50%; transform: translate(-50%, -84%);
    /* Las patitas y la percha montan ~16% sobre el borde de la nota (el mismo
       gesto de la portada: los pájaros se posan en los bordes de las cosas) */
    width: clamp(132px, 24cqw, 178px); aspect-ratio: 420 / 136; z-index: 3;
    background: url('/media/archive/nupcii.com/images/templates/trino/pajaritos-besito.webp') center bottom / contain no-repeat;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-eyebrow {
    font-family: var(--font-tr-name);
    font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase;
    color: var(--tr-ink-gold);
    margin: clamp(10px, calc(var(--archive-vh, 1svh) * 1.6), 18px) 0 clamp(14px, calc(var(--archive-vh, 1svh) * 2.2), 24px);
    padding-left: 0.3em;
    text-shadow: var(--tr-foil-sm);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-names { display: flex; flex-direction: column; align-items: center; gap: 0; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-name {
    font-family: var(--font-tr-name); font-weight: 400;
    font-size: clamp(34px, 5.6cqw, 70px); line-height: 1.12;
    letter-spacing: 0.02em;
    color: var(--tr-hero-heading);   /* el nombre del invitado, como los de la pareja, en palo de rosa */
    text-shadow: var(--tr-foil);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-name--compact { font-size: clamp(28px, 3.9cqw, 48px); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-amp {
    font-family: var(--font-tr-script);
    font-size: clamp(24px, 3.4cqw, 42px); line-height: 1;
    color: var(--tr-olive);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-sep {
    display: block; width: clamp(20px, 2.6cqw, 30px); height: 1px;
    background: var(--tr-olive-border);
    margin: clamp(8px, 1.2cqw, 14px) auto;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-meta {
    font-family: var(--font-tr-name);
    font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
    color: var(--tr-ink-gold); margin-top: 16px;
}
/* Cupos (p. ej. "5 personas" / "+2 acompañantes"): etiqueta tradicional bajo el
   nombre, como en el resto de plantillas (el sello redondo competía con la corona) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-count {
    display: inline-flex; align-items: baseline; gap: 8px;
    margin: 18px auto 0; padding: 7px 16px;
    border: 1px solid var(--tr-olive-border);
    border-radius: 999px;
    background: rgba(var(--tr-veil-rgb), 0.5);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-count-n {
    font-family: var(--font-tr-display); font-weight: 400;
    font-size: clamp(20px, 2.8cqw, 26px); line-height: 1; color: var(--tr-heading);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-count-l {
    font-family: var(--font-tr-body); font-weight: 500;
    font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--tr-ink-gold);
}
/* Filete suave bajo el nombre: hairline que se desvanece hacia los extremos, como
   las líneas de los divisores (el subrayado ondulado a mano se retiró) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-rule {
    display: block; width: clamp(120px, 30%, 180px); height: 2px; border-radius: 1px;
    margin: clamp(22px, calc(var(--archive-vh, 1svh) * 3), 32px) auto;
    background: var(--tr-olive);   /* filete de pincel, ya no pespunte rojo */
    opacity: 0.4;
    -webkit-mask: linear-gradient(to right, transparent, #000 25%, #000 75%, transparent);
            mask: linear-gradient(to right, transparent, #000 25%, #000 75%, transparent);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-msg {
    font-family: var(--font-tr-display); font-style: italic;
    font-size: clamp(17px, 2.2cqw, 22px); line-height: 1.6;
    color: var(--tr-text); max-width: 32ch; margin: 0 auto;
    text-shadow: var(--tr-foil);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-ded-sec::after { display: none; }

/* ═══════════════ LAS DOS FOTOS DESTACADAS, JUNTAS (móvil y tablet) ═══════════════
   Dos instantáneas dejadas sobre la mesa: la de la fecha grande y girada a la
   izquierda, la del itinerario solapando su esquina inferior derecha con el giro
   contrario, cada una con cinta washi, y la paniculata prensada entre ambas. */
/* overflow hidden: el cordón se sale de la caja a propósito y sin esto su cola
   invadía la sección siguiente (la cinta panorámica). */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo-sec { padding: clamp(44px, 9cqw, 80px) 0 clamp(72px, 12cqw, 110px); overflow: hidden; }   /* aire con la nota de invitados y con la guirnalda */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo {
    position: relative;
    width: min(380px, 90%); aspect-ratio: 1 / 1.46;   /* alto: separa las fotos y deja correr el cordón */
    margin: 0 auto;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo-photo {
    position: absolute; margin: 0;
    padding: 8px 8px 24px;
    background: var(--tr-frame); border-radius: 1px;
    filter: var(--tr-paper-shadow);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo-img { width: 100%; aspect-ratio: 3 / 4; background-size: cover; background-position: center; }
/* La PINCELADA: una S de acuarela pálida que cruza la escena de lado a lado
   por DETRÁS de las fotos (el rol del cordón de Lazo, en susurro). La sección
   recorta los extremos con su overflow; el asset ya muere en nada. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo-stroke {
    position: absolute; z-index: 0; pointer-events: none;
    left: -26%; top: 36%;
    width: 152%; aspect-ratio: 2095 / 334;
    transform: rotate(14deg);
    background: url('/media/archive/nupcii.com/images/templates/trino/pincelada.webp') center / contain no-repeat;
    opacity: 0.75;   /* perilla: presencia de la pincelada */
}
/* Los dos pajaritos EN VUELO entrando hacia las fotos. Pintura plana: sin sombras. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo-bird {
    position: absolute; z-index: 4; pointer-events: none;
    background: center / contain no-repeat;
}
/* Arriba a la derecha, volando HACIA las fotos (hacia la izquierda) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo-bird--der {
    background-image: url('/media/archive/nupcii.com/images/templates/trino/pajaro-vuelo-izq.webp');
    width: 52%; aspect-ratio: 814 / 821;
    right: -7%; top: -6%;   /* dentro de la sección: el ala no se corta */
}
/* A la izquierda entre las fotos, volando HACIA ellas (hacia la derecha) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo-bird--izq {
    background-image: url('/media/archive/nupcii.com/images/templates/trino/pajaro-vuelo-der.webp');
    width: 55%; aspect-ratio: 926 / 512;
    left: -10%; bottom: 30%;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo-photo--a { left: 0; top: 0; width: 55%; transform: rotate(-4deg); z-index: 1; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo-photo--b { right: 0; bottom: 0; width: 53%; transform: rotate(5deg); z-index: 3; }
/* Una sola foto subida: centrada, sin solape */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo--one { aspect-ratio: 3 / 3.9; width: min(300px, 72%); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo--one .tr-duo-photo { left: 0; right: 0; top: 0; width: 100%; transform: rotate(-2deg); }

/* Escritorio: el bloque no existe; cada foto vuelve a la agenda y al programa */
@container (min-width: 900px) { .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-duo-sec { display: none; } }
/* Móvil y tablet: la agenda y el programa no muestran su foto (ya está en el dúo) */
@container (max-width: 899px) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-date-photo,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-photo { display: none; }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-date:has(.tr-date-photo) .tr-cal-weekday { text-align: center; max-width: none; }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-date:has(.tr-date-photo) { margin-bottom: 0; }
}

/* ═══════════════ ITINERARIO — EL PROGRAMA DEL DÍA ═══════════════ */

/* ── El programa del día: tarjeta impresa + instantánea ──
   Una sola tarjeta de papel con los momentos en filas (hora grande a la izquierda,
   rótulo/sede/dirección a la derecha) separadas por filetes; la rosa prensada asoma
   por la esquina superior y la foto destacada va pegada con washi. Móvil: la foto
   sobre la esquina inferior derecha de la tarjeta; escritorio: al lado, montando su
   borde. (Perle: línea vertical con medallones y tarjetas redondeadas.) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl {
    position: relative;
    max-width: 560px; margin: 0 auto;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-program-card {
    position: relative; z-index: 1;
    padding: clamp(30px, 4.4cqw, 52px) clamp(24px, 3.6cqw, 44px) clamp(26px, 3.6cqw, 44px);
    background: var(--tr-card);
    border-radius: 2px;
    transform: rotate(-0.4deg);
    filter: var(--tr-paper-shadow);
}
/* Ramita de acuarela asomando por la esquina superior derecha (pintura plana: sin sombra) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-program-flower {
    position: absolute; z-index: 3; pointer-events: none;
    top: -7%; right: -8%;
    width: clamp(104px, 28%, 160px); aspect-ratio: 565 / 354;
    background: url('/media/archive/nupcii.com/images/templates/trino/ramita-programa.webp') center / contain no-repeat;
    transform: rotate(6deg);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-program-list { list-style: none; margin: 0; padding: 0; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-program-item {
    display: grid; grid-template-columns: auto 1fr;
    column-gap: clamp(18px, 3cqw, 32px);
    align-items: start;
    padding: clamp(20px, 2.8cqw, 30px) 0;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-program-item + .tr-program-item { border-top: 1px solid var(--tr-keyline); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-program-item:first-child { padding-top: 0; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-program-item:last-child  { padding-bottom: 0; }
/* Hora: grande, en Swarsh Daisy, alineada al borde izquierdo del texto */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-program-time {
    display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px;
    min-width: clamp(62px, 9cqw, 96px);
    padding-top: 2px;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-h {
    font-family: var(--font-tr-display);
    font-size: clamp(30px, 4.2cqw, 44px); line-height: 1;
    color: var(--tr-heading);
    font-variant-numeric: tabular-nums;
    text-shadow: var(--tr-foil);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-ampm {
    font-family: var(--font-tr-body);
    font-size: clamp(9px, 1.1cqw, 11px); font-weight: 500; letter-spacing: 0.18em;
    color: var(--tr-ink-gold);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-program-body { min-width: 0; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-label {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--font-tr-body);
    font-size: clamp(10px, 1.2cqw, 12px); font-weight: 500;
    letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--tr-ink-gold);
    margin-bottom: 6px;
}
/* Iconos BORDADOS de los momentos (capilla / brindis), bajo la hora: a 16px en
   la línea del rótulo la puntada era una mancha; aquí tienen sitio real. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-ico {
    display: block; margin-top: clamp(8px, 1.4cqw, 14px);
    background: center / contain no-repeat;
    /* acuarela plana: sin drop-shadow (la sombra era del bordado) */
}
/* Miniaturas de acuarela propias (capilla y brindis; fuera los bordados) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-ico--church  { width: clamp(34px, 4.6cqw, 46px); aspect-ratio: 466 / 595; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-capilla.webp'); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-ico--glasses { width: clamp(38px, 5cqw, 52px); aspect-ratio: 437 / 427; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-brindis.webp'); }
/* Variante neutra (anillos / pastel), misma lámina de acuarela */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-ico--rings   { width: clamp(52px, 6.8cqw, 70px); aspect-ratio: 334 / 250; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-anillos.webp'); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-ico--cake    { width: clamp(38px, 5cqw, 50px); aspect-ratio: 308 / 370; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-pastel.webp'); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-venue {
    font-family: var(--font-tr-display);
    font-size: clamp(20px, 2.8cqw, 30px); line-height: 1.16;
    color: var(--tr-heading);
    text-shadow: var(--tr-foil);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-addr {
    display: flex; align-items: center; gap: 7px;
    font-family: var(--font-tr-body); font-size: clamp(12.5px, 1.4cqw, 14px);
    color: var(--tr-text); opacity: 0.82; margin-top: 8px;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-pin { flex: none; width: 15px; height: 15px; color: var(--tr-olive); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-map {
    display: inline-flex; align-items: center; gap: clamp(10px, 1.6cqw, 18px);
    margin-top: clamp(10px, 1.4cqw, 14px);
    font-family: var(--font-tr-body); font-size: clamp(10px, 1.15cqw, 11.5px);
    font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase;
    text-decoration: none; color: var(--tr-ink-gold);
    transition: color .3s ease !important;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-map span { flex: none; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-arrow { width: 34px; height: 8px; color: currentColor; transition: transform .3s ease !important; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-map:hover { color: var(--tr-heading); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-map:hover .tr-tl-arrow { transform: translateX(4px); }

/* Instantánea pegada con washi. Móvil: cuelga del borde inferior de la tarjeta
   (monta 24px sobre su canto, nunca sobre el texto), alineada a la derecha */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-photo {
    position: relative; z-index: 4;
    width: 40%; max-width: 200px;
    margin: -24px 5% 0 auto;
    padding: 7px 7px 20px;
    background: var(--tr-frame);
    border-radius: 1px;
    transform: rotate(5deg);
    filter: var(--tr-paper-shadow);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-photo-img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }

/* Escritorio: tarjeta + instantánea lado a lado, la foto montando el borde */
@container (min-width: 900px) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl { max-width: 960px; display: grid; grid-template-columns: minmax(420px, 560px) 1fr; align-items: center; column-gap: 0; }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl-photo {
        width: min(100%, 320px); max-width: none;
        margin: 0 0 0 -16px; justify-self: start;
        transform: rotate(3deg);
    }
    /* Con la foto a la derecha, la rosa pasa a la esquina superior izquierda */
    /* En px: con porcentajes de una tarjeta ancha la rosa se alejaba de la esquina */
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-program-flower { right: auto; left: -52px; top: -44px; width: 168px; transform: rotate(-6deg) scaleX(-1); }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-tl--nophoto { grid-template-columns: 1fr; max-width: 620px; }
}

/* ═══════════════ GALERÍA ═══════════════ */
/* Puente de variables para los layouts de galería compartidos (incl. Polaroid):
   look premium → sin inclinación + controles sutiles en oliva (no el coral de la paleta). */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gallery-host {
    position: relative;
    max-width: 1100px; margin: 0 auto;
    --gallery-primary: var(--tr-olive);
    --gallery-accent:  var(--tr-olive);
    --gallery-text:    var(--tr-text);
    --gallery-heading: var(--tr-heading);
    --gallery-font-script: var(--font-tr-display);
    --gallery-polaroid-tilt: 0;                 /* fotos rectas (como las demás premium) */
    /* La tarjeta Polaroid es SIEMPRE blanca, así que la leyenda debe ser oscura en todas las
       paletas (con --tr-text claro de los temas joya quedaba invisible). Sobreescribible por
       paleta vía --tr-polaroid-ink si alguna quisiera otro tono. */
    --gallery-polaroid-text: var(--tr-polaroid-ink, #34302a);
}

/* ═══════════════ DRESS CODE ═══════════════ */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(18px, 3cqw, 32px); max-width: 760px; margin: 0 auto; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc-card {
    position: relative;
    text-align: center;
    padding: clamp(38px, 4.5cqw, 56px) clamp(24px, 3cqw, 36px);
    background: var(--tr-card);
    border: 1px solid var(--tr-olive-border);
    border-radius: var(--tr-radius);
    box-shadow: 0 26px 56px -34px rgba(95,75,40,0.20), 0 2px 8px -6px rgba(95,75,40,0.10);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc-card::before {  /* doble filete interior (como la tarjeta dedicada) */
    content: ""; position: absolute; inset: 7px; pointer-events: none;
    border: 1px solid var(--tr-keyline);
}
/* Iconos de vestimenta en ACUARELA (vestido navy con flor rubor en la cintura,
   esmoquin con boutonniere): altura COMPARTIDA para que las dos tarjetas gemelas
   alineen nombre y código; el ancho lo da el aspecto real de cada pieza.
   Acuarela plana: sin drop-shadow. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc-icon {
    display: block;
    height: clamp(56px, 7.4cqw, 82px);
    margin: 0 auto clamp(14px, 2cqw, 20px);
    background: center / contain no-repeat;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc-icon--dress { aspect-ratio: 350 / 471; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-vestido.webp'); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc-icon--suit  { aspect-ratio: 348 / 420; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-traje.webp'); }

/* Rol = etiqueta pequeña (solo clasifica) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc-name {
    font-family: var(--font-tr-name); font-weight: 500;
    font-size: 12px; letter-spacing: 0.28em; text-transform: uppercase;
    color: var(--tr-ink-gold); margin-bottom: clamp(14px, calc(var(--archive-vh, 1svh) * 2), 20px);   /* AA */
    text-shadow: var(--tr-foil-sm);
}
/* Código de vestimenta = protagonista (lo que el invitado debe saber) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc-code { font-family: var(--font-tr-display); font-style: italic; font-size: clamp(30px, 4.4cqw, 44px); color: var(--tr-heading); line-height: 1.12; }
/* Dentro de las tarjetas de vestimenta el pespunte va SIN corazón (decisión de
   Andrés: el corazón queda reservado a las cabeceras de sección) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc .tr-divider { width: clamp(120px, 55%, 170px); gap: 0; margin: clamp(18px, calc(var(--archive-vh, 1svh) * 2.6), 26px) auto clamp(16px, calc(var(--archive-vh, 1svh) * 2.2), 22px); }
/* Dentro de la tarjeta, la junta suave de la casa: la liana (la línea quedó
   display:none global; sin esto el divisor interno no pintaba NADA) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc .tr-divider-mark {
    width: clamp(84px, 18cqw, 110px); aspect-ratio: 382 / 70;
    background-image: url('/media/archive/nupcii.com/images/templates/trino/sep-liana.webp');
    opacity: 0.85;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc-notes { font-family: var(--font-tr-body); font-size: 13.5px; color: var(--tr-text); opacity: 0.78; margin-top: 12px; }

/* ═══════════════ REGALOS ═══════════════ */
/* Tarjeta de papelería (como la dedicada): marfil + doble filete + watermark de laurel */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift {
    position: relative;
    max-width: 600px; margin: 0 auto; text-align: center;
    padding: clamp(54px, 7cqw, 84px) clamp(34px, 6cqw, 70px);
    background: var(--tr-card);
    border: 1px solid var(--tr-olive-border);
    border-radius: var(--tr-radius);
    box-shadow: 0 34px 70px -36px rgba(95,75,40,0.22), 0 2px 10px -6px rgba(95,75,40,0.10);
    text-shadow: var(--tr-foil);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift::before {  /* doble filete interior */
    content: ""; position: absolute; inset: 7px; pointer-events: none;
    border: 1px solid var(--tr-keyline);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift > * { position: relative; z-index: 1; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift .tr-card-calla { opacity: 0.14; }
/* Más aire en la sección de regalos, sobre todo en la parte inferior */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] #gifts { padding-top: clamp(112px, 15cqw, 184px); padding-bottom: clamp(144px, 19cqw, 224px); }
/* Iconos de ACUARELA de la mesa de regalos: sobre con medallón rubor (el eco
   del sobre del intro), caja navy con lazo rubor y corazón wet-on-wet con su
   ramita. Se muestra UNO según gift_type: sin alinear entre sí, cada pieza
   con su aspecto real. Acuarela plana: sin drop-shadow. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift-icon {
    display: block; margin: 0 auto clamp(16px, calc(var(--archive-vh, 1svh) * 2.4), 24px);
    background: center / contain no-repeat;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift-icon--box      { width: clamp(50px, 6.8cqw, 72px); aspect-ratio: 284 / 297; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-regalo.webp'); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift-icon--envelope { width: clamp(70px, 9.4cqw, 100px); aspect-ratio: 360 / 239; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-sobre.webp'); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift-icon--heart    { width: clamp(60px, 8.1cqw, 86px); aspect-ratio: 344 / 279; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-corazon.webp'); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift-title { font-family: var(--font-tr-display); font-style: italic; font-size: clamp(28px, 4.4cqw, 42px); color: var(--tr-heading); margin-bottom: 18px; text-shadow: var(--tr-foil); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift-text { font-family: var(--font-tr-display); font-size: clamp(17px, 2.4cqw, 21px); line-height: 1.6; color: var(--tr-text); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift-list { list-style: none; padding: 0; margin: 22px 0 0; display: flex; flex-direction: column; gap: 12px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift-list li {
    font-family: var(--font-tr-body); font-size: 15px; color: var(--tr-text);
    padding-bottom: 12px; border-bottom: 1px solid var(--tr-olive-dim);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-gift-list li:last-child { border-bottom: none; }

/* ═══════════════ LOGÍSTICA ═══════════════ */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(18px, 3cqw, 28px); max-width: 900px; margin: 0 auto; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info-card--full { grid-column: 1 / -1; }
/* Tres tarjetas en la fila de abajo (Transporte + Alojamiento + Niños): tres columnas.
   :where() conserva la especificidad del grid para que el 1fr del @container móvil siga ganando. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info:where(:has(> :nth-child(4)), :not(:has(.tr-info-card--full)):has(> :nth-child(3))) { grid-template-columns: repeat(3, 1fr); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info:not(:has(.tr-info-card--full)) .tr-info-card:only-child {
    grid-column: 1 / -1;
    max-width: 450px;
    margin-left: auto;
    margin-right: auto;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info:has(.tr-info-card--full) .tr-info-card:not(.tr-info-card--full):last-child:nth-child(2) {
    grid-column: 1 / -1;
    max-width: 450px;
    margin-left: auto;
    margin-right: auto;
}
@container (max-width: 560px) { .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info { grid-template-columns: 1fr; } }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info-card {
    position: relative;
    text-align: center; padding: clamp(34px, 4cqw, 48px) clamp(22px, 3cqw, 30px);
    background: var(--tr-card);
    border: 1px solid var(--tr-olive-border);
    border-radius: var(--tr-radius);
    box-shadow: 0 26px 56px -34px rgba(95,75,40,0.20), 0 2px 8px -6px rgba(95,75,40,0.10);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info-card::before {  /* doble filete interior */
    content: ""; position: absolute; inset: 7px; pointer-events: none;
    border: 1px solid var(--tr-keyline);
}
/* Iconos de información en ACUARELA (misma familia que vestimenta): nota con
   la rosa, carro de bodas con el ramo en el baúl y trío de globos con lacito.
   Acuarela plana: sin drop-shadow; aspecto real por pieza. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info-icon {
    display: block; margin: 0 auto 14px;
    background: center / contain no-repeat;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info-icon--note    { width: clamp(63px, 8.3cqw, 85px); aspect-ratio: 340 / 224; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-nota.webp'); }
/* El carro es panorámico (perfil + ramo en el baúl): gana ancho para no perder masa */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info-icon--car     { width: clamp(96px, 12.5cqw, 130px); aspect-ratio: 430 / 175; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-carro.webp'); }
/* Fachada de hotel en acuarela (Alojamiento): casi cuadrada, ancho contenido como la nota */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info-icon--hotel   { width: clamp(60px, 7.9cqw, 80px); aspect-ratio: 307 / 224; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-hotel.webp'); }
/* Los globos son altos y estrechos: ancho contenido para no estirar la tarjeta */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info-icon--balloon { width: clamp(37px, 4.8cqw, 50px); aspect-ratio: 250 / 426; background-image: url('/media/archive/nupcii.com/images/templates/trino/ico-globos.webp'); }
/* Transporte y Niños van lado a lado (>560 de container): caja de altura común
   con el icono apoyado en la base para que los dos títulos alineen (el carro es
   bajo y los globos altos; la height explícita pisa el aspect-ratio a propósito) */
@container (min-width: 561px) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info-card:not(.tr-info-card--full) .tr-info-icon {
        height: clamp(64px, 8.4cqw, 88px);
        background-position: bottom center;
    }
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info-title { font-family: var(--font-tr-display); font-style: italic; font-size: clamp(22px, 3cqw, 28px); color: var(--tr-heading); margin-bottom: 12px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-info-text { font-family: var(--font-tr-body); font-size: 14.5px; color: var(--tr-text); opacity: 0.85; }

/* ═══════════════ RSVP ═══════════════ */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp {
    position: relative;
    max-width: 600px; margin: 0 auto;
    padding: clamp(60px, 7cqw, 80px) clamp(28px, 5cqw, 56px) clamp(40px, 5cqw, 56px);
    background: var(--tr-card);
    border: 1px solid var(--tr-olive-border);
    border-radius: var(--tr-radius);
    box-shadow: 0 34px 70px -36px rgba(95,75,40,0.22), 0 2px 10px -6px rgba(95,75,40,0.10);
    text-align: center;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp::before {  /* doble filete interior (como las demás tarjetas) */
    content: ""; position: absolute; inset: 7px; pointer-events: none;
    border: 1px solid var(--tr-keyline);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp-intro { font-family: var(--font-tr-display); font-size: clamp(18px, 2.6cqw, 23px); color: var(--tr-text); line-height: 1.55; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp-intro strong { color: var(--tr-heading); font-weight: 500; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp-deadline {
    font-family: var(--font-tr-body); font-size: clamp(14px, 1.9cqw, 16.5px); letter-spacing: 0.5px;
    color: var(--tr-ink-gold); margin-top: 18px; margin-bottom: 30px; line-height: 1.5;   /* AA: en oro (sunset) daba ~3.1 */
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp-empty {
    margin-top: 26px; padding: 28px;
    border: 1px dashed var(--tr-olive-border); border-radius: var(--tr-radius);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp-empty p { font-family: var(--font-tr-body); font-size: 14px; color: var(--tr-text); opacity: 0.8; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp :is(form, .rsvp-form) { margin-top: 28px; }

/* ── Formulario RSVP: estiliza el componente compartido public.rsvp-form ── */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .rsvp-form-container { padding: 0 !important; background: transparent !important; border: none !important; box-shadow: none !important; }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .rsvp-response-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 26px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .response-option {
    cursor: pointer; padding: 16px; margin: 0;
    border: 1px solid var(--tr-olive-border) !important; border-radius: var(--tr-radius) !important;
    background: var(--tr-surface) !important; transition: all .3s ease !important;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .response-option:hover { border-color: var(--tr-olive) !important; background: var(--tr-olive-dim) !important; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .response-option.selected { border-color: var(--tr-olive) !important; background: var(--tr-olive-dim) !important; box-shadow: inset 0 0 0 1px var(--tr-olive-border) !important; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .option-content { display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--tr-text) !important; font-family: var(--font-tr-body); font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .response-option.selected .option-content { color: var(--tr-olive) !important; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .option-icon { color: var(--tr-olive); }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .section-label { display: block; font-size: 10px !important; font-weight: 400 !important; color: var(--tr-olive) !important; letter-spacing: 3px !important; text-transform: uppercase; font-family: var(--font-tr-body) !important; margin-bottom: 14px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .optional-label { font-size: 11px; opacity: .55; margin-left: 4px; letter-spacing: 0; text-transform: none; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .section-divider { height: 1px; background: var(--tr-olive-border) !important; margin: 22px 0; }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .checkbox-group,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .checkbox-group-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .checkbox-item,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .event-checkbox {
    display: flex; align-items: center; gap: 9px; padding: 11px 13px; cursor: pointer;
    border: 1px solid var(--tr-olive-border) !important; background: var(--tr-surface) !important;
    border-radius: var(--tr-radius) !important; transition: all .2s !important;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .checkbox-item:hover,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .event-checkbox:hover { border-color: var(--tr-olive) !important; background: var(--tr-olive-dim) !important; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .event-checkbox { flex-direction: column; align-items: flex-start; gap: 3px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .checkbox-input { accent-color: var(--tr-olive) !important; width: 16px; height: 16px; flex-shrink: 0; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .checkbox-label,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .event-name { font-size: 14px; color: var(--tr-text) !important; font-family: var(--font-tr-body); cursor: pointer; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .event-time { font-size: 14px; color: var(--tr-text) !important; opacity: 0.75; display: block; font-family: var(--font-tr-body); }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .number-input-wrapper { display: flex; align-items: center; gap: 16px; justify-content: center; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .count-button { width: 38px; height: 38px; border-radius: 50% !important; background: var(--tr-btn-bg) !important; color: var(--tr-on-accent) !important; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all .2s !important; flex-shrink: 0; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .count-button:hover:not(:disabled) { background: var(--tr-btn-hover) !important; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .count-button:disabled { opacity: .3; cursor: not-allowed; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .count-input { width: 64px; text-align: center; font-family: var(--font-tr-display) !important; font-size: 30px; font-style: italic; background: var(--tr-surface) !important; border: 1px solid var(--tr-olive-border) !important; border-radius: var(--tr-radius) !important; padding: 4px; color: var(--tr-heading) !important; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .helper-text { display: block; text-align: center; font-size: 13px; color: var(--tr-text) !important; opacity: 0.55; margin-top: 8px; letter-spacing: 1px; font-family: var(--font-tr-body); }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .dietary-textarea { width: 100%; padding: 12px 14px; background: var(--tr-surface) !important; border: 1px solid var(--tr-olive-border) !important; border-radius: var(--tr-radius) !important; font-family: var(--font-tr-body); font-size: 14px; color: var(--tr-text) !important; resize: vertical; transition: border-color .2s !important; min-height: 72px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .dietary-textarea:focus { outline: none; border-color: var(--tr-olive) !important; box-shadow: 0 0 0 3px var(--tr-olive-dim); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .dietary-textarea::placeholder { color: var(--tr-text) !important; opacity: 0.5; font-style: italic; }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .decline-info-message { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; background: rgba(192,57,43,0.05) !important; border: 1px solid rgba(192,57,43,0.18) !important; border-radius: var(--tr-radius) !important; margin-top: 20px; text-align: left; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .decline-icon-small { flex-shrink: 0; color: #c0392b; margin-top: 2px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .decline-info-text { flex: 1; font-size: 14px; line-height: 1.6; color: var(--tr-text) !important; margin: 0; font-family: var(--font-tr-body); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .decline-info-text strong { color: #c0392b !important; }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .submit-button { width: 100%; padding: 16px 28px; background: var(--tr-btn-bg) !important; color: var(--tr-on-accent) !important; border: none !important; border-radius: var(--tr-radius) !important; font-family: var(--font-tr-body); font-size: 11px; font-weight: 500; letter-spacing: 3px; text-transform: uppercase; cursor: pointer; transition: all .3s ease !important; margin-top: 26px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .submit-button:hover:not(:disabled) { background: var(--tr-btn-hover) !important; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .submit-button:disabled { opacity: .4; cursor: not-allowed; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .error-message { display: block; margin-top: 6px; font-size: 14px; color: #c0392b; font-family: var(--font-tr-body); }

/* Resumen de confirmación */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .confirmation-summary { text-align: center; padding: 8px 0; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .success-icon { width: 76px; height: 76px; border-radius: 50%; background: var(--tr-olive-dim); border: 1px solid var(--tr-olive-border); box-shadow: 0 0 0 6px var(--tr-olive-dim); display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; color: var(--tr-olive); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .decline-icon { width: 76px; height: 76px; border-radius: 50%; background: rgba(192,57,43,0.08); border: 1px solid rgba(192,57,43,0.25); display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; color: #c0392b; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .success-heading { font-family: var(--font-tr-display); font-size: clamp(26px,4cqw,34px); font-style: italic; font-weight: 500; color: var(--tr-heading); margin-bottom: 14px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .decline-heading { font-family: var(--font-tr-display); font-size: clamp(24px,3.6cqw,30px); font-style: italic; font-weight: 500; color: #c0392b; margin-bottom: 14px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .confirmation-message,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .decline-message { font-family: var(--font-tr-body); font-size: 14px; line-height: 1.6; color: var(--tr-text); opacity: .85; margin-bottom: 20px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .confirmation-details { background: var(--tr-surface); border: 1px solid var(--tr-olive-border); border-radius: var(--tr-radius); padding: 22px 26px; display: flex; flex-direction: column; gap: 16px; text-align: left; margin: 0 auto 20px; max-width: 420px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .detail-item { display: flex; flex-direction: column; gap: 6px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .detail-item strong { font-family: var(--font-tr-body); font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(--tr-olive); font-weight: 500; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .names-list,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .events-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; font-family: var(--font-tr-body); font-size: 14px; color: var(--tr-text); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .dietary-text { font-family: var(--font-tr-body); font-size: 14px; color: var(--tr-text); }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .edit-button { display: inline-block; margin-top: 4px; font-family: var(--font-tr-body); font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--tr-heading); background: none; border: none; border-bottom: 1px solid var(--tr-sunset-border); padding-bottom: 3px; cursor: pointer; transition: color .3s, border-color .3s !important; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .edit-button:hover { color: var(--tr-sunset); border-color: var(--tr-sunset); }

@container (max-width: 600px) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .rsvp-response-buttons { grid-template-columns: 1fr; }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .checkbox-group,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-rsvp .checkbox-group-grid { grid-template-columns: 1fr; }
}

/* ═══════════════ FOOTER ═══════════════ */
/* El cierre vuelve al material de la portada: seda bajo velo de champán, de modo
   que la invitación empieza y termina sobre la misma tela. La onda de Florentia se
   sustituye por la misma curva emplumada que usan las secciones protagonista. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-footer {
    position: relative;
    padding: clamp(56px, 7cqw, 88px) 24px clamp(34px, 4cqw, 50px);
    text-align: center;
    background-color: var(--tr-paper);   /* un solo mundo de papel: también el footer */
}

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-footer-inner { position: relative; z-index: 1; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-footer-inner { max-width: 780px; margin: 0 auto; }
/* Footer: el REMATE. Los dos pajaritos POSADOS en su rama florida: en el intro
   alzan el vuelo y aquí vuelven a casa, juntos (espejo que cierra el viaje).
   Acuarela plana: sin sombra. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-footer-seal {
    display: block; margin: 0 auto 18px;
    width: clamp(180px, 28cqw, 250px); aspect-ratio: 1000 / 340;
    background: url('/media/archive/nupcii.com/images/templates/trino/rama-pajaritos.webp') center / contain no-repeat;
}
/* Nombres en Swarsh Daisy, como en la portada (la caligrafía queda solo en el &) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-footer-names {
    display: flex; flex-wrap: wrap; justify-content: center; align-items: baseline;
    column-gap: 0.34em; row-gap: 0;
    font-family: var(--font-tr-name); font-style: normal;
    font-size: clamp(26px, 3.4cqw, 42px); line-height: 1.14;
    letter-spacing: 0.02em; color: var(--tr-heading);
    text-shadow: var(--tr-foil);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-footer-names .tr-foot-name { white-space: nowrap; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-footer-names .tr-foot-amp {
    font-family: var(--font-tr-script);
    font-size: 0.72em; line-height: 1;
    color: var(--tr-sunset);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-footer-date {
    font-family: var(--font-tr-body); font-size: 12px; letter-spacing: 3px; text-transform: uppercase;
    color: var(--tr-ink-gold); margin-top: 10px;   /* AA: el oro daba 2.7:1 sobre el velo de seda */
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-footer-credit { font-family: var(--font-tr-body); font-size: 12px; color: var(--tr-text); opacity: 0.7; margin-top: 22px; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-footer-link { color: var(--tr-ink-gold); text-decoration: none; border-bottom: 1px solid var(--tr-sunset-border); }   /* AA: heading daba 4.1 sobre el velo */

/* ═══════════════ RESPONSIVE ═══════════════ */
@container (max-width: 600px) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-dc { grid-template-columns: 1fr; max-width: 380px; }
    /* Cifras más juntas en pantallas estrechas; los separadores SÍ se muestran
       (la regla heredada de Lazo que los ocultaba aquí era de su diseño de
       tarjetitas, ya retirado) */
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-cd { gap: clamp(10px, 3.2cqw, 18px); }
    /* Footer: nombres apilados (primero / & / segundo) cuando no hay ancho */
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .tr-footer-names { flex-direction: column; align-items: center; }
}


/* ══════════════ VIDEO ENVELOPE INTRO (.vei-*) ══════════════ */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-stage {
    position: fixed; inset: 0; z-index: 10000;
    overflow: hidden;
    font-family: 'Jost', sans-serif;
    background: #F5EFE4;   /* pinta antes de que llegue el primer frame */
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-stage.vei-contained { position: absolute; z-index: 30; }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-media { position: absolute; inset: 0; z-index: 0; }
/* La caja del video la fija layout() (left/top/width/height); sin JS aún, cover */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-video {
    position: absolute; inset: 0; width: 100%; height: 100%;
    max-width: none;   /* el preflight de Tailwind (customizer) capa img,video a max-width:100% y aplastaba el video cuando el cover lo hace más ancho que el stage */
    object-fit: cover; object-position: center;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-video[style*="width"] { object-fit: fill; }
/* Relleno tras el video cuando no cubre el marco: color plano del papel del borde.
   (Se probó el póster desenfocado: a 25px los pétalos quedaban como manchas y a
   70px el promedio de las flores salía más oscuro que el papel; el plano empalma.) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-backdrop { position: absolute; inset: 0; }
/* Bordes del video emplumados (5%) SOLO contra el relleno, por eje: el borde que
   coincide con la pantalla se queda nítido (al abrir, las flores llegan limpias) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-fitted.vei-pad-x:not(.vei-pad-y) .vei-video,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-fitted.vei-pad-x:not(.vei-pad-y) .vei-poster,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-fitted.vei-pad-x:not(.vei-pad-y) .vei-static {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
            mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-fitted.vei-pad-y:not(.vei-pad-x) .vei-video,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-fitted.vei-pad-y:not(.vei-pad-x) .vei-poster,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-fitted.vei-pad-y:not(.vei-pad-x) .vei-static {
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 5%, #000 95%, transparent);
            mask-image: linear-gradient(to bottom, transparent, #000 5%, #000 95%, transparent);
}
/* Relleno en los dos ejes (escritorio con aire: el video 16:9 y la pantalla tienen
   casi la misma proporción): fundido en los cuatro bordes pero CORTO (3%), para que
   al abrir no se lea como viñeta */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-fitted.vei-pad-x.vei-pad-y .vei-video,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-fitted.vei-pad-x.vei-pad-y .vei-poster,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-fitted.vei-pad-x.vei-pad-y .vei-static {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 3%, #000 97%, transparent),
                        linear-gradient(to bottom, transparent, #000 3%, #000 97%, transparent);
            mask-image: linear-gradient(to right, transparent, #000 3%, #000 97%, transparent),
                        linear-gradient(to bottom, transparent, #000 3%, #000 97%, transparent);
    -webkit-mask-composite: source-in;
            mask-composite: intersect;
}
/* iOS pinta un botón de play nativo sobre el video cuando bloquea el autoplay
   (Ahorro de Energía; Chrome iOS lo muestra, cae justo sobre el sello). El tap
   del sello es nuestro control: el del sistema se oculta. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-video::-webkit-media-controls,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-video::-webkit-media-controls-start-playback-button,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-video::-webkit-media-controls-overlay-play-button {
    display: none !important;
    -webkit-appearance: none !important;
    opacity: 0 !important;
}
/* Micro-crossfade al entrar la apertura: amortigua cualquier reencuadre mínimo
   entre el loop y la apertura cuando vienen de herramientas distintas */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-video-open { opacity: 0; transition: opacity .25s ease !important; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-video-open.is-live { opacity: 1; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-static { position: absolute; inset: 0; background-size: cover; background-position: center; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-static[style*="width"] { background-size: 100% 100%; }
/* Póster propio bajo los videos (mismo primer frame): da la cara cuando el
   autoplay está bloqueado y hay que esconder los <video> con su botón nativo */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-poster {
    position: absolute; inset: 0;
    background-size: cover; background-position: center;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-poster[style*="width"] { background-size: 100% 100%; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-poster-only .vei-video { opacity: 0 !important; }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-skip {
    position: absolute; top: clamp(16px, calc(var(--archive-vh, 1svh) * 3), 28px); right: clamp(16px, 3cqw, 28px); z-index: 5;
    background: rgba(255,253,248,0.55); border: 1px solid rgba(85, 80, 74, 0.38);
    color: #6B6155; font-family: 'Jost', sans-serif;
    font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase;
    padding: 7px 16px; border-radius: 999px; cursor: pointer;
    backdrop-filter: blur(4px); transition: background .25s ease, opacity .4s ease !important;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-skip:hover { background: rgba(85, 80, 74, 0.08); }


.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-seal {
    position: absolute; z-index: 4;
    border-radius: 50%; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    -webkit-tap-highlight-color: transparent;
    animation: veiSealPulse 2.8s ease-in-out infinite !important;
    transition: opacity .3s ease !important;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-seal:focus-visible { outline: 2px solid #6B6155; outline-offset: 4px; }
/* Etiqueta rectangular (sealMap con dw): la zona de tap es toda la etiqueta.
   Sin pulso de respiración: sobre una etiqueta cosida el latido se veía raro
   (el hint ya invita al tap); el pulso queda solo para sellos circulares. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-seal--rect { border-radius: 12px; animation: none !important; }
/* Zona de tap del nudo: invisible, solo captura el gesto */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-knot-tap { position: absolute; z-index: 4; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-stage.is-opening .vei-knot-tap { pointer-events: none; }

/* Host del monograma bordado (threadtext): la librería fija la ALTURA del host al
   bloque de la palabra y lo dibuja con aire de descendentes abajo, así que el
   centrado va por transform (top 50% + -40%: -50% óptico corregido por ese aire),
   no por insets. Laterales 8% para no besar el pespunte. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-mono-thread { position: absolute; left: 8%; right: 8%; top: 50%; transform: translateY(-40%); pointer-events: none; }
@keyframes veiSealPulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.045); } }

/* Monograma "grabado" en el lacre: tinta bronce con doble sombra de relieve.
   Tamaño = 38% del diámetro del sello (.vei-seal mide d x d px y es container). */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-seal { container-type: size; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-monogram {
    font-family: var(--vei-mono-font, 'Cormorant Garamond', 'Playfair Display', serif);
    font-weight: 400;
    font-size: 22px;        /* fallback sin container queries */
    font-size: 30cqh;
    color: #3D5570;
    letter-spacing: 1px;
    text-shadow: 0.5px 0.9px 0.7px rgba(255,253,246,0.7), -0.6px -0.9px 1px rgba(28,40,54,0.45), 0 0 1.6px rgba(62,74,87,0.22);
    mix-blend-mode: multiply;
    line-height: 1;
    user-select: none;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-monogram i { font-size: .58em; opacity: .8; margin: 0 .06em; font-style: normal; }
/* El sello desktop tiene el borde perlado proporcionalmente más grueso: medallón interior menor */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-stage[data-variant='desktop'] .vei-monogram { font-size: 17px; font-size: 28cqh; }

.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-hint {
    position: absolute; bottom: clamp(5%, calc(var(--archive-vh, 1svh) * 7), 10%); left: 50%; transform: translateX(-50%); z-index: 4;
    margin: 0; text-align: center; width: 90%;
    font-size: 12px; letter-spacing: 3px; text-transform: uppercase;
    color: #6B6155;
    animation: veiHintFade 2.6s ease-in-out 1.2s infinite !important;
    transition: opacity .45s ease !important;
}
@keyframes veiHintFade { 0%,100% { opacity: 0.55; } 50% { opacity: 1; } }
/* Píldora translúcida tras el hint (opt-in): legible sobre flores o detalle */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-hint--pill {
    /* Centrado por márgenes y no por left:50% + transform: a un absoluto con
       width:auto el left:50% le deja solo media pantalla y partía en 3 líneas */
    left: 0; right: 0; transform: none; margin: 0 auto;
    width: max-content; max-width: min(90%, 480px);
    padding: 8px 18px; border-radius: 999px;
    background: rgba(255,253,248,0.55); border: 1px solid rgba(85, 80, 74, 0.38);
    backdrop-filter: blur(4px);
}

/* Apertura: los overlays HTML se retiran. El monograma espera y se funde según la
   plantilla (Perle: con el destello inicial; Jardin: se queda mientras el centro de
   la corona sigue vacío). */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-stage.is-opening .vei-seal {
    opacity: 0; animation: none !important; pointer-events: none;
    transition: opacity 600ms ease 1800ms !important;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-stage[data-variant='desktop'].is-opening .vei-seal {
    transition: opacity 400ms ease 700ms !important;
}
/* El hint tiene una animación infinita sobre opacity (veiHintFade): hay que cortarla
   o gana siempre sobre el opacity:0 y el texto seguía a la vista durante la apertura */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-stage.is-opening .vei-hint { animation: none !important; opacity: 0; pointer-events: none; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-stage.is-opening .vei-skip { opacity: 0; pointer-events: none; }

/* Bloom final (fade sobre el tramo final del video de apertura) */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-bloom {
    position: absolute; inset: 0; z-index: 6; pointer-events: none;
    opacity: 0; background: radial-gradient(circle at 50% 52%, #FFFDF6 0%, #FBF4E5 45%, #F4EAD6 100%);
    transition: opacity .8s ease !important;
}
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-stage.vei-blooming .vei-bloom { opacity: 1; }

/* Salida del overlay completo */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-leave { transition: opacity .85s ease !important; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-leave-end { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-seal,.archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-hint { animation: none !important; }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-bloom { transition: opacity .2s ease !important; }
    .archive-sheet[data-archive="trino"][data-archive-locale="ru"] .vei-leave { transition: opacity .25s ease !important; }
}

/* Allow longer localized labels to wrap within the original layout. */
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] { -webkit-text-size-adjust: 100%; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] [class$='cal-dow'] { letter-spacing: 0; }
.archive-sheet[data-archive="trino"][data-archive-locale="ru"] [class*='guest-names'],.archive-sheet[data-archive="trino"][data-archive-locale="ru"] [class$='env-guests'] { overflow-wrap: anywhere; }
