/*
 * Putar — this integration's own additions.
 *
 * Separate from style.css because docs/TEMPLATE_MIGRATION.md §5 forbids editing the design's
 * stylesheet: style.css is a byte-for-byte copy of the source bundle, and re-copying it to pick up
 * an upstream fix would silently discard anything added inline. Loaded after it, so these win.
 */

/*
 * Containing blocks for the canonical section anchors.
 *
 * .lakon-anchor is `position: absolute; top: -56px` (see _shared/lakon.css) so it can sit inside a
 * section without taking part in its layout. That only lands in the right place if its section is
 * itself positioned — and in this bundle `.cover` (fixed) and `.head` (relative) are, while `.card`
 * is not, which is every section anchor except #lakon-cover and #lakon-music.
 *
 * `.card` LOOKS positioned at first paint because it carries `transform: translateY(16px)` until
 * revealCards() adds .is-in, and a transform makes an element a containing block for absolute
 * descendants. That is exactly the trap: the anchors would resolve correctly on a page nobody has
 * scrolled and then jump to a far ancestor the moment the card animated in, so a preview_anchor in
 * the editor would scroll to roughly the same wrong place for eight of the eleven sections. Tayang
 * hit the same thing with .row / .quote-band / .credits.
 *
 * #events-slot is the parent of the generated ceremony cards, so it begins exactly where they do.
 */
.card,
#events-slot,
.story-block {
    position: relative;
}

/*
 * greeting_message's own slot, above the guest card on the cover.
 *
 * It needs one because hero_subtitle already owns #cover-note and the editor offers both, so
 * writing them to one element would discard whichever the host filled second (Sorot's finding).
 * Sized and coloured to match .cover__note so the cover still reads as one block.
 */
.cover__greeting {
    margin: 0 0 10px;
    max-width: 30ch;
    font-size: 13px;
    line-height: 1.6;
    color: var(--muted);
}

/*
 * closing_thanks, in the outro card.
 *
 * The bundle declared the field's sibling keys and rendered this one nowhere — the card printed the
 * message, the sign-off, the names and the parents and dropped it. Set between the message and the
 * sign-off, at the weight the design gives its own display lines, so "Terima Kasih" reads as the
 * closing beat rather than another paragraph.
 */
.outro__thanks {
    margin: 14px 0 4px;
    font-family: var(--serif);
    font-size: 24px;
    line-height: 1.25;
    color: var(--ink);
}

/*
 * The explanation shown in place of a form that cannot work: the RSVP on a general (non-guest) link
 * or in preview, and the wishes composer when the host has closed the wall.
 *
 * The bundle has no such class — it assumed every form always posts, because its forms wrote to
 * localStorage and always "succeeded". §4 requires the template to say why instead of showing a
 * form that silently does nothing, so the style comes from here. The wishes one replaces
 * `.composer`, which is the sheet's own flex footer, hence the border that keeps the seam.
 */
.field__hint {
    margin: 0;
    padding: 14px 16px calc(14px + env(safe-area-inset-bottom));
    font-size: 13px;
    line-height: 1.6;
    color: var(--muted);
    text-align: center;
}

.sheet__panel > .field__hint {
    border-top: 1px solid var(--line);
}


/* Own shapes (2026-10-27): moves the design away from the platform it parodies. */
:root { --r-sm: 6px; --r-md: 12px; --r-lg: 18px; --r-xl: 26px; }
/* Arched cover art instead of a square album sleeve. */
.cover__art { border-radius: 999px 999px var(--r-lg) var(--r-lg); aspect-ratio: 5 / 6; }
