:root {
    --paper: #f4efe6;
    --paper-deep: #e7ded1;
    --paper-light: #faf7f1;
    --ink: #17120f;
    --ink-soft: #3d352f;
    --muted: #756b63;
    --line: #cfc4b7;
    --line-strong: #9f9184;
    --accent: #a20f54;
    --accent-dark: #72103e;
    --forest: #243f36;
    --forest-soft: #dce5df;
    --white: #fffdf9;
    --shadow: 0 22px 65px rgba(34, 25, 18, .075);
    --display: 'GFS Didot', 'Bodoni 72', Didot, 'Times New Roman', serif;
    --sans: 'Noto Sans', Arial, sans-serif;
    --title-display: clamp(2.35rem, 3.75vw, 3.85rem);
    --title-page: clamp(1.8rem, 2.3vw, 2.35rem);
    --title-section: clamp(1.35rem, 1.55vw, 1.62rem);
    --title-card: clamp(1.15rem, 1.25vw, 1.32rem);
    --title-person: clamp(2.4rem, 5vw, 4.2rem);
    --title-reveal: clamp(1.5rem, 2.25vw, 2.05rem);
    --title-quote: clamp(1.45rem, 2.4vw, 2.25rem);
}

* { box-sizing: border-box; }
html { background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-text-size-adjust: 100%; }
body { margin: 0; min-height: 100vh; background: var(--paper); position: relative; }
body::after { content: ''; position: fixed; inset: 7px; border: 1px solid rgba(23, 18, 15, .08); pointer-events: none; z-index: 90; }
main { min-height: calc(100vh - 180px); }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; display: block; }
[hidden] { display: none !important; }

::selection { background: rgba(162, 15, 84, .14); }

.skip-link {
    position: fixed;
    left: 1rem;
    top: -5rem;
    z-index: 100;
    padding: .7rem 1rem;
    background: var(--ink);
    color: var(--white);
    text-decoration: none;
}
.skip-link:focus { top: 1rem; }

.shell { width: min(1140px, calc(100% - 52px)); margin-inline: auto; }

.site-header {
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 14px clamp(26px, 3.5vw, 56px);
    border-bottom: 1px solid rgba(23, 18, 15, .11);
    background: rgba(244,239,230,.96);
}
.brand-lockup { display: flex; align-items: center; gap: 13px; min-width: 0; flex: 0 0 auto; }
.wordmark {
    display: inline-grid;
    grid-auto-flow: column;
    gap: .28em;
    font-family: var(--display);
    font-size: 1.48rem;
    line-height: .92;
    letter-spacing: -.025em;
    text-decoration: none;
}
.wordmark span:last-child { font-style: italic; color: var(--forest); }
.maker {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .035em;
}
.site-tools { display: flex; align-items: center; justify-content: flex-end; gap: 16px; min-width: 0; }
.primary-nav { display: flex; align-items: center; gap: clamp(12px, 1.7vw, 24px); }
.quiet-nav-link { color: var(--ink-soft); font-size: .76rem; font-weight: 600; text-decoration: none; border-bottom: 1px solid transparent; white-space: nowrap; }
.quiet-nav-link:hover { color: var(--forest); border-bottom-color: var(--forest); }
.account-login-link {
    min-height: 34px;
    padding: 8px 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--forest);
    background: var(--forest);
    color: var(--white);
    font-size: .73rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}
.account-login-link:hover { background: var(--ink); border-color: var(--ink); transform: translateY(-1px); }
.account-login-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.language-switch { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: .7rem; flex: 0 0 auto; }
.language-switch a { text-decoration: none; padding: 4px 1px; }
.language-switch a[aria-current="true"] { color: var(--forest); font-weight: 700; }
.language-switch span { opacity: .42; }

.site-footer {
    margin-top: 96px;
    padding: 26px clamp(22px, 3.2vw, 48px) 34px;
    border-top: 1px solid rgba(23, 18, 15, .14);
    display: flex;
    justify-content: space-between;
    gap: 24px;
    color: var(--muted);
    font-size: .76rem;
}
.site-footer p { margin: 0; }

.eyebrow {
    margin: 0 0 15px;
    color: var(--accent);
    font-size: .72rem;
    font-weight: 650;
    letter-spacing: .018em;
}
.eyebrow::before { content: ''; display: inline-block; width: 28px; height: 1px; margin-right: 10px; vertical-align: middle; background: currentColor; opacity: .6; }
h1, h2, h3, p { overflow-wrap: break-word; }
h1 {
    margin: 0;
    max-width: 900px;
    font-family: var(--display);
    font-size: var(--title-display);
    font-weight: 400;
    letter-spacing: -.015em;
    line-height: 1.04;
}
.lede {
    max-width: 700px;
    margin: 27px 0 0;
    color: var(--ink-soft);
    font-size: clamp(1rem, 1.45vw, 1.18rem);
    line-height: 1.67;
}
.lede.compact { max-width: 640px; font-size: 1.03rem; }

.hero {
    position: relative;
    padding: clamp(76px, 10vw, 142px) 0 78px;
}
.hero::before {
    content: '';
    position: absolute;
    width: 96px;
    height: 1px;
    left: -126px;
    top: 132px;
    background: var(--accent);
}
.hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.38fr) minmax(280px, .62fr);
    gap: clamp(46px, 7vw, 96px);
    align-items: center;
}
.hero-copy { min-width: 0; }
.hero h1 { max-width: 820px; }
.hero .lede { margin-left: min(5.5vw, 72px); max-width: 640px; }
.hero-actions { margin: 37px 0 0 min(5.5vw, 72px); display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }

.gift-preview {
    position: relative;
    width: min(430px, 100%);
    justify-self: end;
}
.gift-preview__photo-frame {
    position: relative;
    padding: 10px;
    background: #f6f1e9;
    border: 1px solid rgba(137, 119, 101, .22);
    box-shadow: 18px 22px 0 rgba(23,18,15,.035);
}
.gift-preview__photo-frame::before {
    content: '';
    position: absolute;
    inset: 10px;
    border: 1px solid rgba(137, 119, 101, .1);
    pointer-events: none;
}
.gift-preview__photo-frame::after {
    content: '';
    position: absolute;
    width: 76px;
    height: 5px;
    right: 30px;
    top: 18px;
    background: var(--accent);
}
.gift-preview__photo {
    display: block;
    position: relative;
    z-index: 1;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 2px;
}

.occasion-rail {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: clamp(26px, 4vw, 56px);
    align-items: baseline;
    padding: 22px 0 24px;
    border-top: 1px solid var(--line);
}
.occasion-rail__label { color: var(--accent); font: 700 .66rem/1 var(--sans); letter-spacing: .055em; text-transform: uppercase; white-space: nowrap; }
.occasion-rail__items { display: flex; flex-wrap: wrap; gap: 10px 0; color: var(--ink-soft); }
.occasion-rail__items span { font: 500 .8rem/1.2 var(--sans); }
.occasion-rail__items span:not(:last-child)::after { content: '/'; margin: 0 13px; color: var(--line-strong); font-weight: 400; }
.price-note { max-width: 300px; color: var(--muted); font-size: .82rem; line-height: 1.52; }

.button {
    min-height: 46px;
    border: 1px solid var(--ink);
    border-radius: 0;
    padding: 11px 18px 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    background: transparent;
    color: var(--ink);
    font-weight: 650;
    font-size: .86rem;
    line-height: 1.25;
    transition: transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
}
.button:hover { transform: translateY(-1px); }
.button:focus-visible, .text-action:focus-visible, .language-switch a:focus-visible, .wordmark:focus-visible, .quiet-nav-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.button.primary { background: var(--ink); color: var(--white); }
.button.primary:hover { background: var(--forest); border-color: var(--forest); }
.button.secondary:hover, .button.ghost:hover { background: var(--paper-light); }
.button.ghost { min-height: 42px; background: var(--white); }
.button.wide { width: 100%; }

.story-strip {
    display: grid;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.story-strip article { position: relative; padding: 31px 0 35px; border-bottom: 1px solid var(--line); }
.story-strip article:last-child { border-bottom: 0; }
.story-strip span { color: var(--accent); font-family: var(--display); font-size: 1.1rem; font-style: italic; }
.story-strip h2 { margin: 25px 0 8px; font-family: var(--display); font-size: clamp(1.35rem, 1.75vw, 1.65rem); font-weight: 400; line-height: 1.12; }
.story-strip p { margin: 0; max-width: 31rem; color: var(--muted); line-height: 1.62; font-size: .9rem; }

.gift-letter { padding: clamp(72px, 9vw, 116px) 0; }
.gift-letter__paper {
    position: relative;
    width: min(820px, 100%);
    margin-left: auto;
    padding: clamp(38px, 6vw, 68px) clamp(30px, 7vw, 82px) clamp(42px, 6vw, 66px);
    background: var(--forest);
    color: var(--paper-light);
    box-shadow: -16px 16px 0 var(--paper-deep);
}
.gift-letter__paper::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 78px;
    height: 6px;
    background: var(--accent);
}
.gift-letter__paper::after {
    content: '';
    position: absolute;
    right: 38px;
    bottom: 28px;
    width: 34px;
    height: 6px;
    background: var(--paper);
    transform: rotate(-8deg);
    opacity: .86;
}
.gift-letter__label {
    display: block;
    margin-bottom: 26px;
    color: #f4aacb;
    font-size: .65rem;
    font-weight: 750;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.gift-letter__name {
    margin: 0;
    font: 400 clamp(2rem, 2.8vw, 3rem)/1.04 var(--display);
}
.gift-letter__message {
    max-width: 650px;
    margin: 22px 0 0;
    font: 400 clamp(1.18rem, 1.75vw, 1.58rem)/1.35 var(--display);
}
.gift-letter__signoff {
    display: block;
    margin-top: 30px;
    color: rgba(255,253,249,.72);
    font-size: .76rem;
    font-weight: 650;
}

.pricing-menu {
    border-top: 1px solid var(--line-strong);
    border-bottom: 1px solid var(--line-strong);
}
.pricing-option {
    min-height: 116px;
    display: grid;
    grid-template-columns: minmax(130px,.65fr) minmax(260px,1.45fr) minmax(180px,.8fr);
    gap: 28px;
    align-items: center;
    padding: 22px 18px 22px 0;
    border-bottom: 1px solid var(--line);
    color: var(--ink);
    text-decoration: none;
    transition: background .18s ease, color .18s ease, padding .18s ease, border-color .18s ease;
}
.pricing-option:last-child { border-bottom: 0; }
.pricing-option__name { display: flex; align-items: center; gap: 11px; font-size: .72rem; letter-spacing: .05em; }
.pricing-rule { width: 22px; height: 1px; background: var(--accent); transition: width .18s ease, background .18s ease; }
.pricing-option--premium .pricing-rule { background: var(--forest); }
.pricing-option__copy { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 24px; }
.pricing-option__price { font-family: var(--display); font-size: clamp(1.75rem, 2.7vw, 2.45rem); line-height: 1; white-space: nowrap; }
.pricing-option__copy p { margin: 0; max-width: 35rem; color: var(--muted); font-size: .79rem; line-height: 1.55; transition: color .18s ease; }
.pricing-option__action { justify-self: end; display: flex; align-items: center; gap: 12px; font-size: .75rem; font-weight: 700; white-space: nowrap; }
.pricing-option__action span { font-size: 1.05rem; transition: transform .18s ease; }
.pricing-option:hover, .pricing-option:focus-visible { background: var(--forest); color: var(--white); padding-left: 18px; border-color: var(--forest); outline: none; }
.pricing-option:hover .pricing-rule, .pricing-option:focus-visible .pricing-rule { width: 31px; background: var(--paper); }
.pricing-option:hover .pricing-option__copy p, .pricing-option:focus-visible .pricing-option__copy p { color: rgba(255,253,249,.78); }
.pricing-option:hover .pricing-option__action span, .pricing-option:focus-visible .pricing-option__action span { transform: translateX(4px); }

.form-shell, .manage-shell, .contributor-shell, .checkout-shell { max-width: 900px; padding-top: 68px; }
.manage-shell { max-width: 980px; }
.form-shell { max-width: 820px; }
.contributor-shell { max-width: 740px; }
.checkout-shell { max-width: 730px; }
.back-link { display: inline-block; margin-bottom: 48px; color: var(--muted); text-decoration: none; font-size: .84rem; }
.back-link:hover { color: var(--ink); }
.form-shell h1, .checkout-shell h1, .manage-shell h1, .centered-shell h1 {
    font-size: var(--title-page);
    line-height: 1.02;
    letter-spacing: -.012em;
}
.contributor-shell h1 { font-size: var(--title-page); }

.onboarding-note {
    margin-top: 38px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 0 10px;
    padding: 17px 0;
}
.onboarding-note span { color: var(--accent); font-family: var(--display); font-style: italic; font-size: .94rem; }
.onboarding-note p { margin: 0 0 7px; color: var(--muted); font-size: .84rem; }
.onboarding-note p:last-child { margin-bottom: 0; }

.editorial-form { margin-top: 48px; display: grid; gap: 27px; padding: clamp(24px, 4vw, 46px); background: var(--paper-light); border: 1px solid var(--line); box-shadow: 12px 14px 0 rgba(23,18,15,.025); }
.editorial-form label, .editorial-form fieldset { display: grid; gap: 9px; color: var(--ink-soft); font-size: .84rem; font-weight: 600; }
.editorial-form input, .editorial-form textarea, .editorial-form select, .copy-row input,
.admin-filters input, .admin-filters select {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--line-strong);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    padding: 12px 2px 13px;
    outline: none;
}
.editorial-form input:focus, .editorial-form textarea:focus, .editorial-form select:focus, .copy-row input:focus,
.admin-filters input:focus, .admin-filters select:focus { border-bottom-color: var(--accent); box-shadow: 0 1px 0 var(--accent); }
.editorial-form textarea { resize: vertical; min-height: 134px; line-height: 1.65; }
.editorial-form small, .choice small { color: var(--muted); font-weight: 400; line-height: 1.48; }
.optional { color: var(--muted); font-weight: 400; }
.editorial-form fieldset { margin: 9px 0; padding: 0; border: 0; }
.editorial-form legend { margin-bottom: 10px; font-family: var(--display); font-size: 1.32rem; font-weight: 400; }
.plan-fieldset { border-top: 1px solid var(--line) !important; padding-top: 17px !important; }
.choice { grid-template-columns: auto 1fr !important; align-items: start; border-bottom: 1px solid var(--line); padding: 17px 0; }
.choice input { width: auto; margin-top: 4px; accent-color: var(--accent); }
.choice span { display: grid; gap: 5px; }
.inline-check { grid-template-columns: auto 1fr !important; align-items: center; }
.inline-check input { width: auto; accent-color: var(--accent); }
.two-col { display: grid; gap: 26px; }
.form-footnote { margin: -3px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.55; text-align: left; }
.file-field input[type="file"] { padding: 10px 0 12px; color: var(--muted); }
.file-field input[type="file"]::file-selector-button {
    margin-right: 12px;
    border: 1px solid var(--ink);
    border-radius: 0;
    padding: 9px 12px;
    background: var(--ink);
    color: var(--white);
    font: 600 .77rem/1 var(--sans);
    cursor: pointer;
}

.account-connect-note {
    margin-bottom: 28px;
    padding: 18px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.account-connect-note strong { display: block; font-family: var(--display); font-size: 1.22rem; font-weight: 400; }
.account-connect-note p { margin: 5px 0 0; max-width: 560px; color: var(--muted); font-size: .82rem; line-height: 1.48; }
.account-connect-note.is-connected { color: var(--forest); }

.manage-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 26px; }
.page-creator-manage .manage-heading h1 { max-width: 14ch; }
.manage-heading p:last-child { margin: 13px 0 0; color: var(--muted); }
.status { display: inline-flex; white-space: nowrap; padding: 7px 9px; border: 1px solid var(--line); color: var(--muted); font-size: .7rem; font-weight: 600; }
.status.finalized { background: var(--forest); color: white; border-color: var(--forest); }
.notice { margin: 0 0 27px; padding: 15px 0 15px 18px; border-left: 2px solid var(--forest); color: var(--ink-soft); background: rgba(36, 63, 54, .055); line-height: 1.55; }
.notice--contextual { margin: 30px 0 10px; }

.creator-onboarding { margin-top: 52px; padding: 32px clamp(0px, 3vw, 28px) 28px; border-block: 1px solid var(--line); background: rgba(250,247,241,.38); }
.onboarding-intro {
    max-width: none;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr);
    gap: 12px 42px;
    align-items: end;
}
.onboarding-intro > .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
.onboarding-intro h2 {
    margin: 0;
    max-width: 19ch;
    font-family: var(--display);
    font-size: var(--title-section);
    font-weight: 400;
    line-height: 1.14;
    letter-spacing: -.008em;
}
.onboarding-intro > p:last-child { margin: 0; max-width: 34rem; color: var(--muted); font-size: .84rem; line-height: 1.65; }
.onboarding-steps { margin-top: 30px; display: grid; border-top: 1px solid var(--line); }
.onboarding-step { display: grid; grid-template-columns: 42px 1fr; gap: 14px; padding: 19px 0; border-bottom: 1px solid var(--line); }
.onboarding-step > span { color: var(--muted); font-family: var(--display); font-style: italic; font-size: 1.05rem; padding-top: 1px; }
.onboarding-step h3 { margin: 0; font-family: var(--display); font-size: 1.16rem; line-height: 1.18; font-weight: 400; }
.onboarding-step p { margin: 6px 0 0; color: var(--muted); font-size: .84rem; line-height: 1.54; }
.onboarding-step.active > span { color: var(--forest); }
.onboarding-step.done > span::after { content: ' ✓'; color: var(--forest); font-family: var(--sans); font-style: normal; font-size: .7rem; }

.link-panel { margin-top: 43px; display: grid; border: 1px solid var(--line); background: var(--paper-light); box-shadow: 10px 12px 0 rgba(23,18,15,.022); }
.link-block { padding: 28px clamp(20px, 3vw, 32px) 30px; }
.link-block + .link-block { border-top: 1px solid var(--line); }
.label { margin: 0; font-family: var(--display); font-size: 1.22rem; font-weight: 400; }
.helper-copy { margin: 6px 0 0; max-width: 620px; color: var(--muted); font-size: .83rem; line-height: 1.5; }
.copy-row { margin-top: 15px; display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: end; }
.copy-row input { font-size: .82rem; }
.share-row { display: flex; flex-wrap: wrap; gap: .8rem 1rem; margin-top: .85rem; }
.text-action { appearance: none; border: 0; padding: 0; background: none; color: var(--accent-dark); font: 600 .79rem/1.45 var(--sans); text-decoration: underline; text-underline-offset: .22em; cursor: pointer; }

.summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 35px; border: 1px solid var(--line); background: rgba(250,247,241,.45); }
.summary-grid article { min-width: 0; padding: 22px 18px; }
.summary-grid article + article { border-left: 1px solid var(--line); }
.summary-grid span { display: block; font-family: var(--display); font-size: clamp(1.7rem, 2.7vw, 2.45rem); }
.summary-grid p { margin: 5px 0 0; color: var(--muted); font-size: .74rem; line-height: 1.35; }
.creator-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 29px 0 64px; }
.creator-actions form { margin: 0; }
.section-heading h2 { margin: 0 0 16px; font-family: var(--display); font-size: var(--title-section); line-height: 1.14; font-weight: 400; }
.memory-admin { display: grid; gap: 18px; margin-top: 14px; padding: 28px clamp(18px, 3vw, 28px); border: 1px solid var(--line); background: var(--paper-light); }
.memory-admin.hidden { opacity: .48; }
.memory-admin > img { width: 100%; max-height: 460px; object-fit: cover; }
.memory-admin h3 { margin: 0 0 8px; font-family: var(--display); font-size: 1.22rem; line-height: 1.18; font-weight: 400; }
.memory-admin p { margin: 0; line-height: 1.68; white-space: normal; }
.memory-admin footer { margin-top: 14px; color: var(--muted); font-size: .77rem; }
.memory-controls { display: flex; gap: 14px; align-items: start; }
.memory-controls button { border: 0; background: none; padding: 0; color: var(--accent-dark); text-decoration: underline; text-underline-offset: 3px; }
.empty-state, .closed-card, .account-empty { padding: 29px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.empty-state strong, .account-empty h2 { display: block; margin: 0 0 7px; font-family: var(--display); font-size: 1.32rem; line-height: 1.18; font-weight: 400; }
.empty-state p, .closed-card p, .account-empty p { margin: 0; color: var(--muted); line-height: 1.6; }
.closed-card { margin-top: 40px; }
.closed-card h2 { margin: 0 0 9px; font-family: var(--display); font-weight: 400; font-size: 1.52rem; line-height: 1.14; }

.centered-shell { max-width: 830px; min-height: 68vh; padding-top: 13vh; text-align: center; }
.centered-shell .lede { margin-inline: auto; }
.centered-shell > h2 { margin: 20px auto 0; max-width: 640px; font-family: var(--display); font-size: clamp(1.45rem,2.35vw,2rem); line-height: 1.15; font-weight: 400; }
.quiet-cta { margin: 54px auto 0; max-width: 430px; padding-top: 25px; border-top: 1px solid var(--line); }
.quiet-cta p { color: var(--muted); line-height: 1.6; }
.quiet-cta a { font-weight: 650; text-underline-offset: 4px; }

.story-banner {
    position: relative;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    background: var(--paper-light);
    box-shadow: 16px 20px 0 rgba(23,18,15,.025);
}
.story-banner picture,
.story-banner img { display: block; width: 100%; height: 100%; }
.story-banner img { object-fit: cover; }
.story-banner::after {
    content: '';
    position: absolute;
    inset: 8px;
    border: 1px solid rgba(255,253,249,.42);
    pointer-events: none;
}

.page-creator-manage .story-banner--manage {
    height: clamp(190px, 21vw, 240px);
    margin: 34px 0 38px;
}

.reveal-door { min-height: calc(100vh - 180px); display: block; padding-block: 7vh 10vh; }
.reveal-door .story-banner {
    width: min(980px, 100%);
    height: clamp(220px, 25vw, 300px);
    margin-inline: auto;
}
.reveal-door__inner {
    position: relative;
    z-index: 2;
    width: min(760px, calc(100% - 48px));
    margin: -50px auto 0;
    text-align: left;
    padding: clamp(40px, 6vw, 64px) clamp(26px, 7vw, 68px) clamp(46px, 6vw, 66px);
    background: var(--paper-light);
    border: 1px solid var(--line);
    box-shadow: 18px 22px 0 rgba(23,18,15,.025);
}
.reveal-door__inner::before,
.reveal-door__inner::after { display: none; }
.reveal-door__kicker { margin: 0 0 18px; color: var(--accent); font-size: .72rem; font-weight: 700; letter-spacing: .035em; }
.recipient-display-name { margin: 0; font-family: var(--display); font-size: var(--title-person) !important; font-weight: 400; line-height: .96 !important; letter-spacing: -.012em !important; }
.reveal-door h2 { margin: 0; max-width: 560px; font-family: var(--display); font-size: var(--title-reveal); line-height: 1.12; font-weight: 400; }
.reveal-door p:last-child { max-width: 520px; margin: 18px 0 0; color: var(--muted); line-height: 1.7; }

.reveal-shell { min-height: 76vh; }
.reveal-intro { max-width: 1040px; padding-top: clamp(54px, 8vh, 92px); padding-bottom: 96px; text-align: left; }
.reveal-intro .story-banner { height: clamp(210px, 24vw, 280px); margin-bottom: 42px; }
.reveal-intro__content { width: min(900px, 100%); }
.reveal-intro .recipient-display-name { max-width: 100%; }
.reveal-intro__gift-copy { width: min(700px, 100%); margin: 42px 0 0 min(8vw, 88px); padding-left: 24px; border-left: 1px solid var(--accent); }
.reveal-gift-title { margin: 0; font-family: var(--display); font-size: var(--title-reveal); line-height: 1.12; font-weight: 400; }
.reveal-intro__gift-copy .lede { margin: 20px 0 0; }
.reveal-intro__gift-copy .button { margin: 30px 0 0; }
.preview-empty { max-width: 42rem; margin: 2rem 0 0; color: var(--muted); font-size: 1rem; }
.memory-stage { max-width: 900px; padding: 9vh 0 76px; }
.reveal-memory { animation: rise .35s ease both; }
.reveal-memory__paper { padding: clamp(28px, 5vw, 58px); background: var(--paper-light); border: 1px solid var(--line); box-shadow: 16px 20px 0 rgba(23,18,15,.028); }
.reveal-memory__paper > img { width: 100%; max-height: 600px; object-fit: cover; margin-bottom: 36px; box-shadow: none; }
.memory-kicker { margin: 0 0 18px; color: var(--accent); font-family: var(--display); font-size: 1.22rem; font-style: italic; }
.reveal-memory blockquote { margin: 0; font-family: var(--display); font-size: var(--title-quote); line-height: 1.2; letter-spacing: -.006em; }
.reveal-memory blockquote::before { content: '“'; color: var(--accent); margin-right: .08em; }
.reveal-memory footer { margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); font-size: .84rem; }
.reveal-controls { margin-top: 34px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.reveal-controls span { color: var(--muted); font-size: .8rem; }
.reveal-end { max-width: 830px; padding-top: 14vh; padding-bottom: 90px; text-align: left; }
.reveal-end h2 { margin: 0; max-width: 700px; font-family: var(--display); font-size: clamp(1.8rem, 3.1vw, 2.75rem); line-height: 1.12; font-weight: 400; }
.reveal-end > p:not(.eyebrow) { margin: 24px 0 0 min(8vw, 90px); max-width: 540px; color: var(--muted); line-height: 1.7; }
.reveal-end .button { margin: 31px 0 0 min(8vw, 90px); }

.price-large { margin: 29px 0 4px; font-family: var(--display); font-size: 4.2rem; letter-spacing: -.02em; }
.checkout-shell form { margin-top: 31px; }
.error-shell .button { margin-top: 29px; }

.preview-bar {
    position: sticky;
    top: 0;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .78rem max(1.35rem, calc((100vw - 1120px) / 2));
    border-bottom: 1px solid var(--line);
    background: rgba(244, 239, 230, .95);
    backdrop-filter: blur(10px);
    font: 600 .7rem/1.25 var(--sans);
}
.preview-bar span { color: var(--accent-dark); }
.preview-bar a { color: var(--ink); }
.preview-empty { max-width: 42rem; margin: 2rem 0 0; color: var(--muted); font-size: 1rem; }

.account-shell, .admin-shell, .admin-detail-shell { padding-top: 72px; }
.account-heading, .admin-heading { max-width: 900px; }
.account-heading h1, .admin-heading h1, .admin-detail-heading h1 { font-size: var(--title-page); line-height: 1.06; }
.account-identity-line { margin-top: 24px; display: flex; align-items: center; flex-wrap: wrap; gap: 16px; color: var(--muted); font-size: .83rem; }
.account-identity-line form { margin: 0; }
.account-toolbar { margin: 36px 0 54px; display: flex; align-items: center; flex-wrap: wrap; gap: 18px; }
.jar-library { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; border-top: 0; }
.jar-library-card { padding: 28px 28px 30px; border: 1px solid var(--line); background: var(--paper-light); box-shadow: 8px 10px 0 rgba(23,18,15,.02); }
.jar-library-card__topline { display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: .75rem; }
.jar-library-card h2 { margin: 20px 0 5px; font-family: var(--display); font-weight: 400; font-size: clamp(1.4rem, 1.8vw, 1.72rem); line-height: 1.14; }
.jar-library-card > p { margin: 0; color: var(--muted); }
.jar-library-card__meta { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 10px 20px; color: var(--muted); font-size: .76rem; }

.admin-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; max-width: none; }
.admin-heading > div { max-width: 820px; }
.admin-stats { margin: 48px 0 38px; display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.admin-stats article { padding: 20px 18px 20px 0; }
.admin-stats article + article { padding-left: 18px; border-left: 1px solid var(--line); }
.admin-stats strong { display: block; font-family: var(--display); font-size: 2.4rem; font-weight: 400; }
.admin-stats span { display: block; margin-top: 3px; color: var(--muted); font-size: .73rem; }
.admin-filters { display: grid; grid-template-columns: minmax(260px, 1fr) 180px 160px auto; gap: 20px; align-items: end; margin-bottom: 34px; }
.admin-filters label { display: grid; gap: 7px; color: var(--muted); font-size: .74rem; }
.admin-filter-actions { display: flex; align-items: center; gap: 13px; }
.admin-table-wrap { overflow-x: auto; border-top: 1px solid var(--line); }
.admin-table { width: 100%; border-collapse: collapse; min-width: 980px; }
.admin-table th { padding: 13px 12px 13px 0; text-align: left; color: var(--muted); font-size: .7rem; font-weight: 600; border-bottom: 1px solid var(--line); }
.admin-table td { padding: 18px 12px 18px 0; vertical-align: top; border-bottom: 1px solid var(--line); font-size: .82rem; }
.admin-table td strong, .admin-table td small { display: block; }
.admin-table td strong { font-family: var(--display); font-size: 1.15rem; font-weight: 400; }
.admin-table td small { margin-top: 4px; color: var(--muted); font-size: .7rem; }
.admin-back { display: inline-block; margin-bottom: 36px; }
.admin-detail-heading { display: flex; justify-content: space-between; gap: 28px; align-items: start; }
.admin-detail-heading p:last-child { color: var(--muted); }
.admin-detail-grid { margin: 44px 0 64px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.admin-detail-grid div { padding: 20px 18px 20px 0; }
.admin-detail-grid div + div { padding-left: 18px; border-left: 1px solid var(--line); }
.admin-detail-grid dt { color: var(--muted); font-size: .7rem; }
.admin-detail-grid dd { margin: 8px 0 0; font-family: var(--display); font-size: 1.2rem; }
.admin-memory-list article { padding: 25px 0; border-top: 1px solid var(--line); }
.admin-memory-list h3 { margin: 0 0 8px; font-family: var(--display); font-size: 1.2rem; line-height: 1.18; font-weight: 400; }
.admin-memory-list article p { margin: 0; line-height: 1.66; }
.admin-memory-list footer { margin-top: 13px; color: var(--muted); font-size: .75rem; }

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


/* v0.4.2 — keepsake art direction */
.page-contributor-form .contributor-shell { max-width: 900px; }
.page-contributor-form .story-banner { height: clamp(190px, 23vw, 250px); margin: 0 0 38px; }
.page-contributor-form .contributor-opening,
.page-contributor-form .contribution-form,
.page-contributor-form .closed-card { width: min(740px, 100%); margin-inline: auto; }
.contributor-opening { margin-bottom: 38px; }
.contributor-opening .eyebrow { margin-bottom: 12px; }
.contributor-person-name { margin: 0; font-family: var(--display); font-size: var(--title-person); line-height: .96; font-weight: 400; letter-spacing: -.012em; }
.contributor-opening h2 { margin: 24px 0 0; max-width: 650px; font-family: var(--display); font-size: var(--title-reveal); line-height: 1.13; font-weight: 400; }
.contributor-opening .lede { margin-top: 18px; }
.contribution-form { margin-top: 34px; }
.thanks-shell h1 { font-size: var(--title-person); line-height: .96; }
.thanks-shell h2 { margin-top: 28px; }
.checkout-unavailable { padding: 32px clamp(0px, 2vw, 18px); }
.checkout-unavailable h2 { max-width: 22ch; font-size: var(--title-section); line-height: 1.14; }
.checkout-unavailable p { max-width: 42rem; }
.closed-card-actions { margin-top: 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.page-creator-create .form-shell, .page-contributor-form .contributor-shell, .page-checkout-page .checkout-shell { padding-bottom: 30px; }
.page-errors-error .error-shell { min-height: calc(100vh - 180px); display: grid; align-content: center; padding-top: 0; }

@media (min-width: 760px) {
    .story-strip { grid-template-columns: repeat(3, 1fr); }
    .story-strip article { padding: 32px 30px 36px; border-bottom: 0; border-right: 1px solid var(--line); }
    .story-strip article:first-child { padding-left: 0; }
    .story-strip article:last-child { border-right: 0; padding-right: 0; }
    .two-col { grid-template-columns: 1fr 1fr; }
    .onboarding-steps { grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); }
    .onboarding-step { grid-template-columns: 1fr; padding: 21px 22px 25px; border-bottom: 0; border-right: 1px solid var(--line); }
    .onboarding-step:first-child { padding-left: 0; }
    .onboarding-step:last-child { border-right: 0; padding-right: 0; }
    .memory-admin { grid-template-columns: minmax(0, 1fr) auto; }
    .memory-admin > img { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
    .admin-stats { grid-template-columns: repeat(2, 1fr); }
    .admin-stats article { border-bottom: 1px solid var(--line); }
    .admin-filters { grid-template-columns: 1fr 1fr; }
    .admin-detail-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {

    body::after { inset: 4px; }
    .editorial-form { padding: 24px 18px; box-shadow: 7px 9px 0 rgba(23,18,15,.025); }
    .reveal-door { min-height: calc(100vh - 150px); padding-block: 28px 58px; }
    .reveal-door .story-banner { height: 190px; }
    .reveal-door__inner { width: calc(100% - 18px); margin-top: -24px; padding: 34px 20px 38px; box-shadow: 8px 10px 0 rgba(23,18,15,.025); }
    .reveal-intro { padding-top: 42px; }
    .reveal-intro .story-banner { height: 180px; margin-bottom: 30px; }
    .reveal-intro__gift-copy { margin-left: 0; padding-left: 18px; margin-top: 32px; }
    .page-contributor-form .story-banner { height: 180px; margin-bottom: 30px; }
    .page-creator-manage .story-banner--manage { height: 180px; margin: 28px 0 32px; }
    .reveal-memory__paper { padding: 24px 20px; box-shadow: 8px 10px 0 rgba(23,18,15,.025); }
    .jar-library { grid-template-columns: 1fr; }
    .jar-library-card { padding: 24px 20px; }
    .contributor-opening h2 { margin-top: 24px; }
    .shell { width: min(100% - 30px, 1120px); }
    .site-header { min-height: 0; padding: 13px 15px 12px; flex-wrap: wrap; gap: 11px 18px; }
    .maker { display: none; }
    .site-tools { order: 2; width: 100%; justify-content: flex-start; gap: 10px 14px; flex-wrap: wrap; padding: 2px 0 1px; }
    .primary-nav { gap: 8px 14px; flex: 1 1 100%; flex-wrap: wrap; }
    .quiet-nav-link { font-size: .69rem; }
    .account-login-link { min-height: 32px; padding: 7px 11px; font-size: .69rem; }
    .language-switch { font-size: .66rem; }
    .site-footer { margin-top: 70px; padding-inline: 15px; flex-direction: column; gap: 8px; }
    .link-block { padding-inline: 18px; }
    .hero { padding-top: 62px; padding-bottom: 54px; }
    .hero::before { display: none; }
    .hero-grid { grid-template-columns: 1fr; gap: 44px; }
    .hero .lede, .hero-actions, .reveal-intro .lede, .reveal-intro .button, .preview-empty, .reveal-end > p:not(.eyebrow), .reveal-end .button { margin-left: 0; }
    .gift-preview { width: min(460px, 100%); margin: 0 auto; }
    .gift-preview__photo-frame { padding: 8px; }
    .gift-letter__paper { box-shadow: -8px 10px 0 var(--paper-deep); }
    .occasion-rail { grid-template-columns: 1fr; gap: 14px; padding-bottom: 28px; }
    .occasion-rail__items span:not(:last-child)::after { margin-inline: 9px; }
    h1 { line-height: .99; }
    .copy-row { grid-template-columns: 1fr; }
    .copy-row .button { width: 100%; }
    .summary-grid { grid-template-columns: 1fr; border-bottom: 0; }
    .summary-grid article { border-bottom: 1px solid var(--line); padding-left: 0 !important; border-left: 0 !important; }
    .creator-actions { display: grid; }
    .creator-actions .button, .creator-actions form, .creator-actions form .button { width: 100%; }
    .manage-heading, .admin-heading, .admin-detail-heading, .account-connect-note { display: grid; }
    .status { width: fit-content; }
    .link-block { padding-inline: 0; }
    .reveal-controls { align-items: stretch; flex-direction: column; }
    .reveal-controls .button { width: 100%; }
    .preview-bar { align-items: flex-start; font-size: .62rem; padding-inline: 15px; }
    .preview-bar span { max-width: 15rem; }
    .admin-stats { grid-template-columns: 1fr 1fr; }
    .admin-filters { grid-template-columns: 1fr; }
    .admin-filter-actions { align-items: center; }
    .admin-detail-grid { grid-template-columns: 1fr; }
    .admin-detail-grid div { border-left: 0 !important; border-bottom: 1px solid var(--line); padding-left: 0 !important; }

    .pricing-option { grid-template-columns: 1fr; gap: 11px; padding: 20px 0; }
    .pricing-option__copy { grid-template-columns: auto 1fr; gap: 18px; }
    .pricing-option__action { justify-self: start; }
    .pricing-option:hover, .pricing-option:focus-visible { padding-left: 14px; padding-right: 14px; }
}


@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.admin-privacy-note {
    margin-top: 58px;
    max-width: 720px;
    padding: 28px 0 0 min(6vw, 68px);
    border-top: 1px solid var(--line);
}
.admin-privacy-note h2 {
    margin: 0;
    font-family: var(--display);
    font-size: var(--title-section);
    font-weight: 400;
    line-height: 1.08;
}
.admin-privacy-note > p:last-child {
    margin: 14px 0 0;
    color: var(--muted);
    line-height: 1.65;
}

/* v0.4 — sharing, commerce and externally-hosted memory media */
.share-drawer {
  margin-top: 1.15rem;
  border-top: 1px solid var(--line);
  padding-top: .95rem;
}
.share-drawer > summary {
  width: fit-content;
  cursor: pointer;
  list-style: none;
  font: 650 .82rem/1.2 var(--sans);
  letter-spacing: .01em;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .22em;
}
.share-drawer > summary::-webkit-details-marker { display: none; }
.share-drawer-inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 1px;
  margin-top: .85rem;
  background: var(--line);
  border: 1px solid var(--line);
}
.share-choice {
  appearance: none;
  border: 0;
  border-radius: 0;
  background: var(--paper);
  color: var(--ink);
  padding: .9rem 1rem;
  text-align: left;
  text-decoration: none;
  display: flex;
  min-height: 4.6rem;
  flex-direction: column;
  justify-content: space-between;
  cursor: pointer;
  font-family: var(--sans);
}
.share-choice strong { font-size: .86rem; font-weight: 650; }
.share-choice span { color: var(--muted); font-size: .69rem; line-height: 1.35; }
.share-choice:hover, .share-choice:focus-visible { background: var(--paper-deep); outline: none; }
.share-choice-featured { background: var(--ink); color: var(--paper); }
.share-choice-featured span { color: rgba(246,242,234,.68); }
.share-choice-featured:hover, .share-choice-featured:focus-visible { background: var(--forest); }

.short-link-state {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.5rem;
}
.short-link-state > div { min-width: 0; }
.short-link-state strong { display: block; margin-top: .25rem; font: 600 .94rem/1.35 var(--sans); overflow-wrap: anywhere; }
.short-link-state p { margin: .25rem 0 0; color: var(--muted); font-size: .78rem; max-width: 46rem; }
.short-link-state.is-active { border-top-color: color-mix(in srgb, var(--forest) 42%, var(--line)); }
.mini-kicker { display:block; color: var(--accent); font: 650 .66rem/1.2 var(--sans); letter-spacing: .08em; }
.quiet-warning { margin: .7rem 0; color: var(--muted); font: .78rem/1.5 var(--sans); }

.media-contribution-block {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 1.25rem 0;
  display: grid;
  gap: 1rem;
}
.section-copy-small strong { display:block; margin:.28rem 0; font: 500 1.35rem/1.15 var(--display); }
.section-copy-small p { margin:0; color:var(--muted); font-size:.82rem; max-width:42rem; }
.media-or { display:flex; align-items:center; gap:.7rem; color:var(--muted); font-size:.7rem; }
.media-or::before,.media-or::after { content:""; height:1px; flex:1; background:var(--line); }
.external-media-live-preview { min-height: 0; }
.external-media-live-preview iframe,
.external-embed iframe {
  width: 100%;
  border: 0;
  display: block;
  background: #000;
}
.external-media-live-preview iframe,
.external-embed.video iframe { aspect-ratio: 16 / 9; height: auto; }
.external-embed.audio iframe { min-height: 152px; height: 152px; }
.media-preview-meta { margin: 0 0 .45rem; color: var(--muted); font: 650 .68rem/1.2 var(--sans); }
.media-preview-message { margin:0; padding:.7rem 0; color:var(--muted); font:.78rem/1.45 var(--sans); }
.memory-admin .external-embed { grid-column: 1 / -1; width: min(100%, 42rem); margin-bottom: .8rem; }
.reveal-memory .external-embed { width: min(100%, 54rem); margin: 0 auto 1.7rem; }

.checkout-shell { max-width: 54rem; }
.checkout-form { margin-top: 2.2rem; display:grid; gap:1.4rem; padding: clamp(24px, 4vw, 42px); border:1px solid var(--line); background:var(--paper-light); box-shadow:12px 14px 0 rgba(23,18,15,.025); }
.checkout-options { border:0; padding:0; margin:0; display:grid; gap:0; }
.checkout-options legend { margin-bottom:.8rem; font:650 .76rem/1.2 var(--sans); color:var(--muted); }
.checkout-option,
.checkout-addon,
.upgrade-line {
  display:grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items:center;
  gap:1rem;
  border-top:1px solid var(--line);
  padding:1.15rem .15rem;
}
.checkout-option:last-child { border-bottom:1px solid var(--line); }
.checkout-option input,.checkout-addon input { accent-color:var(--accent); inline-size:1rem; block-size:1rem; }
.checkout-option-copy strong,.checkout-addon strong,.upgrade-line strong { display:block; font:500 1.15rem/1.15 var(--display); }
.checkout-option-copy small,.checkout-addon small,.upgrade-line p { display:block; margin-top:.2rem; color:var(--muted); font:.75rem/1.4 var(--sans); }
.checkout-option-price { white-space:nowrap; font:500 1.05rem/1 var(--display); }
.checkout-addon { border-block:1px solid var(--line); }
.upgrade-line { grid-template-columns:minmax(0,1fr) auto; border-block:1px solid var(--line); }
.coupon-field { margin-top:.3rem; }
.checkout-total { display:flex; align-items:end; justify-content:space-between; gap:2rem; border-top:1px solid var(--ink); padding-top:1rem; }
.checkout-total span { display:block; font:650 .8rem/1.2 var(--sans); }
.checkout-total small { display:block; margin-top:.18rem; color:var(--muted); font-size:.68rem; }
.checkout-total strong { font:500 clamp(1.9rem,5vw,3rem)/.95 var(--display); }
.checkout-trust { display:flex; flex-wrap:wrap; gap:.55rem 1rem; color:var(--muted); font:.69rem/1.3 var(--sans); }
.checkout-trust span::before { content:"✓"; color:var(--forest); margin-right:.35rem; }
.checkout-account-gate { margin-top:2rem; border-block:1px solid var(--line); padding:1.6rem 0; }
.checkout-account-gate h2 { margin:.35rem 0 .5rem; font:500 var(--title-section)/1.14 var(--display); max-width:20ch; }
.checkout-account-gate p { color:var(--muted); max-width:42rem; }
.checkout-account-gate .button { margin-top:.7rem; }
.checkout-account-gate small { display:block; margin-top:.7rem; color:var(--muted); }

@media (max-width: 760px) {
  .share-drawer-inner { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .short-link-state { align-items:flex-start; flex-direction:column; gap:.65rem; }
  .checkout-option,.checkout-addon { grid-template-columns:auto minmax(0,1fr); }
  .checkout-option-price { grid-column:2; justify-self:start; }
  .upgrade-line { grid-template-columns:1fr; }
  .checkout-total { align-items:flex-start; }
}
.checkout-option.is-disabled {
  opacity: .56;
  cursor: not-allowed;
}
.checkout-option.is-disabled input { cursor: not-allowed; }
.checkout-pending {
  margin-top: 2rem;
  padding: 1.6rem 0;
  border-block: 1px solid var(--line);
}
.checkout-pending h2 {
  margin: .35rem 0 .55rem;
  max-width: 15ch;
  font: 500 var(--title-section)/1.14 var(--display);
}
.checkout-pending > p { max-width: 44rem; color: var(--muted); line-height: 1.6; }
.checkout-pending-total {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  margin: 1.3rem 0;
  padding-top: .9rem;
  border-top: 1px solid var(--line);
}
.checkout-pending-total span { font-size: .78rem; color: var(--muted); }
.checkout-pending-total strong { font: 500 2rem/1 var(--display); }
.checkout-pending-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.checkout-pending-actions form { margin: 0; }
.checkout-pending > small { display:block; margin-top:.7rem; color:var(--muted); line-height:1.45; }

/* v0.4.1 — human language choice */
.reference-fieldset {
    border: 0;
    border-top: 1px solid var(--line);
    margin: 2px 0 0;
    padding: 20px 0 0;
}
.reference-fieldset legend {
    padding: 0;
    font-family: var(--display);
    font-size: 1.12rem;
    font-weight: 400;
}
.reference-fieldset .field-intro {
    margin: 7px 0 10px;
    max-width: 44rem;
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.55;
}
.reference-options {
    display: grid;
    border-bottom: 1px solid var(--line);
}
.reference-options .choice:last-child { border-bottom: 0; }
@media (min-width: 760px) {
    .reference-options { grid-template-columns: repeat(3, 1fr); }
    .reference-options .choice {
        grid-template-columns: auto 1fr !important;
        padding: 17px 18px 17px 0;
        border-bottom: 0;
        border-right: 1px solid var(--line);
    }
    .reference-options .choice + .choice { padding-left: 18px; }
    .reference-options .choice:last-child { border-right: 0; padding-right: 0; }
}

.recipient-language-control {
    margin: -4px 0 34px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.recipient-language-control summary {
    cursor: pointer;
    padding: 14px 0;
    color: var(--muted);
    font-size: .76rem;
    font-weight: 600;
}
.recipient-language-control__body { padding: 0 0 18px; }
.recipient-language-control__body > p {
    margin: 0 0 14px;
    max-width: 46rem;
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.55;
}
.recipient-language-control form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px 18px;
    align-items: end;
}
.recipient-language-options { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px 22px; }
.recipient-language-options label { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-soft); font-size: .78rem; cursor: pointer; }
.recipient-language-options input {
    appearance: none;
    width: 15px;
    height: 15px;
    margin: 0;
    border: 1px solid var(--line-strong);
    border-radius: 50%;
    background: var(--paper-light);
}
.recipient-language-options input:checked { background: var(--accent); box-shadow: inset 0 0 0 4px var(--paper-light); border-color: var(--accent); }
.recipient-language-options input:focus-visible { outline: 2px solid rgba(171,0,83,.22); outline-offset: 3px; }

/* v0.4.4 — quieter checkout typography, custom controls, branded gift-code field */
.page-checkout-page .checkout-shell {
    max-width: 55rem;
}
.page-checkout-page .checkout-shell > h1 {
    max-width: 15ch;
    font-size: var(--title-page);
    line-height: 1.015;
    letter-spacing: -.012em;
}
.page-checkout-page .checkout-shell > .lede {
    max-width: 35rem;
    margin-top: 20px;
    font-size: .98rem;
    line-height: 1.62;
}

.checkout-form {
    position: relative;
    gap: 1.55rem;
    margin-top: 2.4rem;
    padding: clamp(28px, 4.2vw, 46px);
    border: 1px solid var(--line);
    background: var(--paper-light);
    box-shadow: 11px 13px 0 rgba(36, 63, 54, .028);
}
.checkout-form::before {
    content: '';
    position: absolute;
    inset: 9px;
    border: 1px solid rgba(159, 145, 132, .24);
    pointer-events: none;
}
.checkout-options,
.checkout-addon,
.gift-code-panel,
.checkout-total,
.checkout-trust,
.checkout-form > .button,
.checkout-form > .form-footnote,
.upgrade-line {
    position: relative;
    z-index: 1;
}

.checkout-options {
    gap: 0;
}
.checkout-options legend {
    width: min(100%, 31rem);
    margin: 0 0 .85rem;
    color: var(--ink-soft);
    font: 500 1.15rem/1.35 var(--display);
}
.checkout-option,
.checkout-addon,
.upgrade-line {
    padding: 1.3rem .2rem;
    transition: background .16s ease, padding .16s ease, border-color .16s ease;
}
.checkout-option:not(.is-disabled):hover,
.checkout-addon:hover {
    background: rgba(162, 15, 84, .018);
}
.checkout-option:has(input:checked),
.checkout-addon:has(input:checked) {
    margin-inline: -.65rem;
    padding-inline: .65rem;
    background: rgba(36, 63, 54, .04);
    border-color: rgba(36, 63, 54, .3);
}

/* Replace browser-default radios and checkboxes with the product's own quiet controls. */
.checkout-option input,
.checkout-addon input {
    appearance: none;
    -webkit-appearance: none;
    width: 17px;
    height: 17px;
    margin: 2px 0 0;
    border: 1px solid var(--line-strong);
    background: transparent;
    display: grid;
    place-content: center;
    flex: 0 0 auto;
}
.checkout-option input[type="radio"] {
    border-radius: 50%;
}
.checkout-option input[type="radio"]::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent);
    transform: scale(0);
    transition: transform .12s ease;
}
.checkout-option input[type="radio"]:checked {
    border-color: var(--accent);
}
.checkout-option input[type="radio"]:checked::before {
    transform: scale(1);
}
.checkout-addon input[type="checkbox"] {
    border-radius: 0;
}
.checkout-addon input[type="checkbox"]::before {
    content: '';
    width: 9px;
    height: 5px;
    border-left: 1.5px solid var(--white);
    border-bottom: 1.5px solid var(--white);
    transform: rotate(-45deg) scale(0);
    margin-top: -2px;
    transition: transform .12s ease;
}
.checkout-addon input[type="checkbox"]:checked {
    border-color: var(--forest);
    background: var(--forest);
}
.checkout-addon input[type="checkbox"]:checked::before {
    transform: rotate(-45deg) scale(1);
}
.checkout-option input:focus-visible,
.checkout-addon input:focus-visible {
    outline: 2px solid rgba(162, 15, 84, .28);
    outline-offset: 3px;
}

.checkout-option-copy strong,
.checkout-addon strong,
.upgrade-line strong {
    display: block;
    font: 500 1.18rem/1.15 var(--display);
}
.checkout-option-copy small,
.checkout-addon small,
.upgrade-line p {
    display: block;
    max-width: 35rem;
    margin-top: .36rem;
    color: var(--ink-soft);
    font: 400 .77rem/1.56 var(--sans);
}
.checkout-option-price {
    white-space: nowrap;
    font: 500 1.12rem/1 var(--display);
}

/* The code field should read as part of the gift, not as an unstyled browser form. */
.gift-code-panel {
    margin-top: .2rem;
    padding: 1.25rem 1.3rem 1.3rem;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: rgba(255, 253, 249, .42);
}
.gift-code-intro {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
}
.gift-code-mark {
    color: var(--accent);
    font-family: var(--display);
    font-size: 1.05rem;
    line-height: 1.2;
    transform: translateY(.08rem);
}
.gift-code-copy strong {
    display: block;
    color: var(--ink);
    font: 500 1.08rem/1.2 var(--display);
}
.gift-code-copy small {
    display: block;
    max-width: 31rem;
    margin-top: .3rem;
    color: var(--muted);
    font: 400 .72rem/1.55 var(--sans);
}
.gift-code-field {
    display: grid;
    grid-template-columns: minmax(105px, .32fr) minmax(0, 1fr);
    gap: 1rem;
    align-items: end;
    margin: 1rem 0 0 2.8rem;
}
.gift-code-label {
    padding-bottom: .72rem;
    color: var(--ink-soft);
    font: 600 .72rem/1.25 var(--sans);
}
.gift-code-input-wrap {
    position: relative;
    display: block;
}
.gift-code-input-wrap::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: var(--line-strong);
    transition: height .15s ease, background .15s ease;
}
.gift-code-input-wrap:focus-within::after {
    height: 2px;
    background: var(--accent);
}
.gift-code-field input {
    width: 100%;
    min-height: 43px;
    padding: 8px 2px 10px;
    border: 0;
    border-radius: 0;
    outline: 0;
    background: transparent;
    color: var(--ink);
    font: 650 .88rem/1.2 var(--sans);
    letter-spacing: .045em;
    text-transform: uppercase;
}
.gift-code-field input::placeholder {
    color: #9a8f85;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}

.checkout-total {
    align-items: flex-end;
    padding-top: 1.15rem;
}
.checkout-total span {
    color: var(--ink-soft);
    font-size: .8rem;
}
.checkout-total small {
    margin-top: .3rem;
    font-size: .69rem;
}
.checkout-total strong {
    font-size: clamp(2rem, 4vw, 2.7rem);
}
.checkout-form > .button.primary {
    min-height: 52px;
    font-size: .88rem;
    letter-spacing: .004em;
}
.checkout-trust {
    gap: .65rem 1.15rem;
    color: var(--ink-soft);
    font-size: .7rem;
}
.checkout-trust span::before {
    content: '•';
    color: var(--accent);
    margin-right: .38rem;
}
.checkout-form > .form-footnote {
    max-width: 38rem;
    margin-top: -.15rem;
    color: var(--muted);
    line-height: 1.62;
}

@media (max-width: 760px) {
    .page-checkout-page .checkout-shell > h1 {
        max-width: 13ch;
        font-size: clamp(1.85rem, 8.4vw, 2.35rem);
        line-height: 1.06;
    }
    .page-checkout-page .checkout-shell > .lede {
        font-size: .93rem;
    }
    .checkout-form {
        padding: 24px 18px 27px;
        box-shadow: 7px 9px 0 rgba(36, 63, 54, .025);
    }
    .checkout-form::before { inset: 7px; }
    .checkout-option:has(input:checked),
    .checkout-addon:has(input:checked) {
        margin-inline: -.35rem;
        padding-inline: .35rem;
    }
    .gift-code-panel {
        padding: 1.1rem .95rem 1.15rem;
    }
    .gift-code-intro {
        grid-template-columns: 22px minmax(0, 1fr);
        gap: .55rem;
    }
    .gift-code-field {
        grid-template-columns: 1fr;
        gap: .25rem;
        margin: .85rem 0 0 1.7rem;
    }
    .gift-code-label {
        padding-bottom: 0;
    }
    .gift-code-field input {
        font-size: .9rem;
    }
}

/* v0.5 — trust, moderation and reporting */
.admin-subnav {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 0 0 42px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
    font-size: .78rem;
}
.admin-subnav a { text-decoration: none; color: var(--muted); }
.admin-subnav a[aria-current="page"], .admin-subnav a:hover { color: var(--ink); }
.nav-count {
    display: inline-grid;
    place-items: center;
    min-width: 1.45rem;
    height: 1.45rem;
    margin-left: .4rem;
    padding: 0 .35rem;
    border: 1px solid var(--accent);
    color: var(--accent);
    font-size: .68rem;
}
.admin-table tr.is-deleted { opacity: .58; }
.admin-access-chip, .report-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 9px;
    border: 1px solid var(--line-strong);
    color: var(--ink-soft);
    font-size: .68rem;
}
.report-badge { border-color: rgba(162,15,84,.35); color: var(--accent-dark); background: rgba(162,15,84,.045); }
.admin-moderation-note, .admin-review-entry, .admin-danger-zone {
    margin-top: 42px;
    padding: 28px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.admin-moderation-note strong, .admin-review-entry h2, .admin-danger-zone h2 {
    font-family: var(--display);
    font-size: var(--title-section);
    font-weight: 400;
}
.admin-moderation-note p, .admin-review-entry p, .admin-danger-zone p {
    max-width: 700px;
    color: var(--muted);
    line-height: 1.7;
}
.admin-review-entry, .admin-danger-zone {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 36px;
    align-items: end;
}
.admin-danger-zone { margin-top: 64px; }
.admin-danger-zone form { width: min(360px,100%); display: grid; gap: 14px; }
.admin-danger-zone label, .admin-moderation-actions label { display: grid; gap: 7px; color: var(--muted); font-size: .73rem; }
.admin-danger-zone input, .admin-moderation-actions input {
    width: 100%;
    padding: 11px 0;
    border: 0;
    border-bottom: 1px solid var(--line-strong);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    outline: 0;
}
.admin-danger-zone input:focus, .admin-moderation-actions input:focus { border-bottom-color: var(--accent); box-shadow: 0 1px 0 var(--accent); }
.danger-button { background: var(--accent-dark); color: var(--white); border-color: var(--accent-dark); }
.text-action.danger { color: var(--accent-dark); }
.admin-jar-reports { margin-top: 42px; }
.admin-jar-reports article {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding: 17px 0;
    border-top: 1px solid var(--line);
}
.admin-jar-reports article div { display: grid; gap: 4px; }
.admin-jar-reports article span { color: var(--muted); font-size: .75rem; }

.admin-moderation-list { margin-top: 48px; display: grid; gap: 34px; }
.admin-moderation-card {
    position: relative;
    padding: clamp(24px,4vw,42px);
    background: var(--paper-light);
    border: 1px solid var(--line);
    box-shadow: 14px 18px 0 rgba(23,18,15,.025);
}
.admin-moderation-card.is-hidden { border-left: 4px solid var(--accent-dark); }
.admin-moderation-card__header {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: start;
    margin-bottom: 26px;
}
.admin-moderation-card__header h2 { margin: 0; font-family: var(--display); font-size: 1.5rem; line-height: 1.14; font-weight: 400; }
.admin-moderation-badges { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.admin-moderation-image { width: min(100%, 720px); max-height: 560px; object-fit: cover; margin: 0 0 28px; }
.admin-moderation-copy blockquote {
    margin: 0;
    max-width: 820px;
    font-family: var(--display);
    font-size: var(--title-section);
    line-height: 1.18;
}
.admin-moderation-copy > p { margin: 22px 0 0; color: var(--muted); font-size: .78rem; }
.admin-moderation-actions {
    margin-top: 30px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
    display: grid;
    grid-template-columns: minmax(260px,1fr) auto;
    gap: 24px;
    align-items: end;
}
.admin-moderation-actions > div { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }

.admin-report-stats {
    margin: 44px 0 34px;
    display: grid;
    grid-template-columns: repeat(3,1fr);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.admin-report-stats article { padding: 20px 0; }
.admin-report-stats article + article { padding-left: 20px; border-left: 1px solid var(--line); }
.admin-report-stats strong { display: block; font-family: var(--display); font-size: 2.5rem; font-weight: 400; }
.admin-report-stats span { display: block; margin-top: 2px; color: var(--muted); font-size: .72rem; }
.reports-filters { grid-template-columns: 220px 1fr auto; }
.report-queue { display: grid; gap: 18px; }
.report-queue-card {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(220px,auto);
    gap: 34px;
    padding: 28px 0;
    border-top: 1px solid var(--line);
}
.report-queue-card__meta { display: flex; gap: 12px; align-items: center; color: var(--muted); font-size: .72rem; }
.report-queue-card h2 { margin: 16px 0 10px; font-family: var(--display); font-size: 1.48rem; line-height: 1.14; font-weight: 400; }
.report-queue-card p { max-width: 760px; line-height: 1.65; }
.report-queue-card__context { color: var(--muted); font-size: .75rem; }
.report-queue-card__actions { display: grid; gap: 14px; align-content: start; }
.report-queue-card__actions form { display: grid; justify-items: start; gap: 8px; }

.memory-actions-row { display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; }
.memory-admin.admin-hidden { border-left: 4px solid var(--accent-dark); }
.platform-moderation-note {
    grid-column: 1 / -1;
    padding: 15px 18px;
    border: 1px solid rgba(162,15,84,.25);
    background: rgba(162,15,84,.04);
}
.platform-moderation-note p { margin: 5px 0 0; color: var(--muted); font-size: .78rem; }
.memory-report-link {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--muted);
    font-size: .72rem;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.memory-report-link:hover { color: var(--accent-dark); }
.reveal-memory__footer { display: flex; justify-content: space-between; align-items: center; gap: 18px; }

.report-dialog {
    width: min(620px, calc(100% - 28px));
    max-height: min(760px, calc(100vh - 36px));
    padding: 0;
    border: 1px solid var(--line-strong);
    border-radius: 0;
    background: var(--paper-light);
    color: var(--ink);
    box-shadow: 0 28px 90px rgba(23,18,15,.2);
}
.report-dialog::backdrop { background: rgba(23,18,15,.48); backdrop-filter: blur(2px); }
.report-dialog__inner { position: relative; padding: clamp(26px,5vw,46px); overflow-y: auto; max-height: inherit; }
.report-dialog__close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 34px;
    height: 34px;
    border: 1px solid var(--line);
    background: transparent;
    color: var(--ink);
    font-size: 1.35rem;
    line-height: 1;
}
.report-dialog__eyebrow { margin: 0 0 12px; color: var(--accent); font-size: .72rem; }
.report-dialog h2 { margin: 0; max-width: 460px; font-family: var(--display); font-size: var(--title-section); line-height: 1.14; font-weight: 400; }
.report-dialog__lead { margin: 18px 0 28px; max-width: 500px; color: var(--muted); line-height: 1.65; }
.report-reasons { margin: 0; padding: 0; border: 0; display: grid; gap: 0; }
.report-reasons legend { margin-bottom: 10px; color: var(--ink-soft); font-size: .78rem; font-weight: 600; }
.report-reasons label {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 12px;
    align-items: start;
    padding: 12px 0;
    border-top: 1px solid var(--line);
    font-size: .88rem;
}
.report-reasons input { margin-top: .17rem; accent-color: var(--accent); }
.report-details { display: grid; gap: 9px; margin-top: 24px; color: var(--ink-soft); font-size: .78rem; }
.report-details textarea {
    resize: vertical;
    min-height: 90px;
    padding: 14px 0;
    border: 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line-strong);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    outline: 0;
}
.report-details textarea:focus { border-bottom-color: var(--accent); box-shadow: 0 1px 0 var(--accent); }
.report-dialog__actions { display: flex; align-items: center; gap: 18px; margin-top: 26px; }
.report-form-status { min-height: 1.2em; margin: 16px 0 0; color: var(--forest); font-size: .78rem; line-height: 1.5; }

@media (max-width: 780px) {
    .admin-review-entry, .admin-danger-zone, .admin-moderation-actions, .report-queue-card { grid-template-columns: 1fr; }
    .admin-moderation-card__header, .reveal-memory__footer { align-items: flex-start; flex-direction: column; }
    .admin-moderation-badges { justify-content: flex-start; }
    .admin-report-stats { grid-template-columns: 1fr; }
    .admin-report-stats article + article { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
    .reports-filters { grid-template-columns: 1fr; }
    .report-dialog__actions { align-items: stretch; flex-direction: column; }
    .report-dialog__actions .button { width: 100%; }
}


/* v0.5.1 — gift-grade controls and automatic super-admin navigation */
.site-tools .admin-nav-link {
    position: relative;
    color: var(--forest);
}
.site-tools .admin-nav-link::before {
    content: '';
    display: inline-block;
    width: 5px;
    height: 5px;
    margin: 0 7px 1px 0;
    border: 1px solid var(--accent);
    transform: rotate(45deg);
    opacity: .72;
}
.site-tools .admin-reports-link { color: var(--accent-dark); }

.button {
    position: relative;
    isolation: isolate;
    min-height: 48px;
    gap: 12px;
    padding: 12px 20px 13px;
    border: 1px solid rgba(23,18,15,.72);
    border-radius: 2px;
    background: rgba(250,247,241,.76);
    box-shadow: 0 8px 22px rgba(35,27,20,.045), inset 0 0 0 3px rgba(244,239,230,.82);
    font-weight: 650;
    letter-spacing: .005em;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
}
.button::before {
    content: '';
    position: absolute;
    inset: 3px;
    border: 1px solid rgba(23,18,15,.10);
    pointer-events: none;
}
.button::after {
    content: '';
    flex: 0 0 auto;
    width: 5px;
    height: 5px;
    border: 1px solid currentColor;
    transform: rotate(45deg);
    opacity: .42;
}
.button:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(35,27,20,.075), inset 0 0 0 3px rgba(244,239,230,.88);
}
.button:active { transform: translateY(0); box-shadow: 0 4px 12px rgba(35,27,20,.05), inset 0 0 0 3px rgba(244,239,230,.88); }
.button.primary {
    border-color: var(--ink);
    background: var(--ink);
    color: var(--white);
    box-shadow: 0 10px 26px rgba(23,18,15,.13), inset 0 0 0 3px rgba(255,253,249,.08);
}
.button.primary::before { border-color: rgba(255,253,249,.20); }
.button.primary:hover {
    background: var(--forest);
    border-color: var(--forest);
    box-shadow: 0 13px 30px rgba(36,63,54,.16), inset 0 0 0 3px rgba(255,253,249,.09);
}
.button.secondary {
    background: rgba(255,253,249,.52);
    border-color: rgba(23,18,15,.58);
}
.button.secondary:hover { background: var(--white); border-color: var(--ink); }
.button.ghost {
    min-height: 44px;
    background: rgba(255,253,249,.64);
    border-color: rgba(23,18,15,.46);
}
.button.ghost:hover { background: var(--white); }
.danger-button {
    background: var(--accent-dark);
    color: var(--white);
    border-color: var(--accent-dark);
    box-shadow: 0 10px 24px rgba(114,16,62,.13), inset 0 0 0 3px rgba(255,253,249,.08);
}
.danger-button::before { border-color: rgba(255,253,249,.18); }

.copy-row { gap: 14px; }
.copy-row input {
    min-height: 48px;
    padding: 11px 4px 10px;
    color: var(--ink-soft);
}
.copy-button {
    min-width: 132px;
    justify-content: center;
    border-color: var(--forest) !important;
    background: var(--forest) !important;
    color: var(--white) !important;
    box-shadow: 0 9px 22px rgba(36,63,54,.13), inset 0 0 0 3px rgba(255,253,249,.08) !important;
}
.copy-button::before { border-color: rgba(255,253,249,.20); }
.copy-button::after { display: none; }
.copy-button:hover {
    background: var(--ink) !important;
    border-color: var(--ink) !important;
    box-shadow: 0 12px 28px rgba(23,18,15,.14), inset 0 0 0 3px rgba(255,253,249,.08) !important;
}
.copy-glyph {
    position: relative;
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
}
.copy-glyph::before,
.copy-glyph::after {
    content: '';
    position: absolute;
    width: 8px;
    height: 10px;
    border: 1px solid currentColor;
    border-radius: 1px;
}
.copy-glyph::before { left: 1px; top: 3px; opacity: .55; }
.copy-glyph::after { left: 5px; top: 0; background: var(--forest); }
.copy-button:hover .copy-glyph::after { background: var(--ink); }

.status {
    gap: 7px;
    padding: 6px 0 7px;
    border: 0;
    border-bottom: 1px solid var(--line-strong);
    color: var(--muted);
    background: transparent;
    font-weight: 600;
}
.status::before {
    content: '';
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 3px rgba(162,15,84,.08);
}
.status.finalized {
    background: transparent;
    color: var(--forest);
    border-color: rgba(36,63,54,.45);
}
.status.finalized::before { background: var(--forest); box-shadow: 0 0 0 3px rgba(36,63,54,.08); }

@media (max-width: 680px) {
    .site-tools { gap: 11px; }
    .copy-button { width: 100%; min-width: 0; }
}

/* v0.5.2 — contextual admin validation */
.notice.error {
    border-left-color: var(--accent-dark);
    background: rgba(139, 50, 77, .055);
}
.admin-reason-error {
    margin: -2px 0 0;
    color: var(--accent-dark);
    font-size: .72rem;
    line-height: 1.45;
}
.admin-reason-form input[aria-invalid="true"] {
    border-bottom-color: var(--accent-dark);
    box-shadow: 0 1px 0 var(--accent-dark);
}

/* v0.5.3 — premium media presentation */
.media-viewer-open { overflow: hidden; }

.premium-media {
    width: min(100%, 54rem);
    margin: 0 auto 2.2rem;
    color: var(--ink);
}
.memory-admin .premium-media,
.admin-moderation-card .premium-media { grid-column: 1 / -1; width: min(100%, 48rem); margin-inline: 0; }
.reveal-memory .premium-media { margin-bottom: clamp(2rem, 4vw, 3.25rem); }

.premium-media__image-button,
.premium-media__external-button {
    appearance: none;
    width: 100%;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    color: inherit;
    text-align: left;
}
.premium-media__image-button { position: relative; display: block; }
.premium-media__image-button:focus-visible,
.premium-media__external-button:focus-visible,
.premium-media__quiet-action:focus-visible,
.media-viewer__close:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 5px;
}

.premium-media__mat {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 180px;
    padding: clamp(12px, 2vw, 22px);
    border: 1px solid color-mix(in srgb, var(--line) 82%, var(--ink) 18%);
    background: #fdfaf5;
    box-shadow:
        0 22px 50px rgba(30, 21, 15, .075),
        10px 12px 0 rgba(23, 18, 15, .025);
    overflow: hidden;
    transition: transform .26s ease, box-shadow .26s ease, border-color .26s ease;
}
.premium-media__mat::after {
    content: '';
    position: absolute;
    inset: clamp(7px, 1vw, 11px);
    border: 1px solid rgba(23, 18, 15, .06);
    pointer-events: none;
}
.premium-media__image-button:hover .premium-media__mat {
    transform: translateY(-3px);
    border-color: var(--line-strong);
    box-shadow:
        0 28px 64px rgba(30, 21, 15, .095),
        12px 15px 0 rgba(23, 18, 15, .028);
}
.premium-media__mat img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: min(70vh, 760px);
    object-fit: contain;
    margin: 0;
    box-shadow: none;
}
.premium-media__corner {
    position: absolute;
    width: 22px;
    height: 22px;
    opacity: .65;
    pointer-events: none;
}
.premium-media__corner--tl { left: 7px; top: 7px; border-left: 1px solid var(--accent); border-top: 1px solid var(--accent); }
.premium-media__corner--br { right: 7px; bottom: 7px; border-right: 1px solid var(--accent); border-bottom: 1px solid var(--accent); }

.premium-media__caption {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem .15rem 0;
    color: var(--muted);
    font: 500 .7rem/1.45 var(--sans);
}
.premium-media__caption > span:first-child { letter-spacing: .015em; }
.premium-media__quiet-action {
    appearance: none;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--accent-dark);
    font: 650 .7rem/1.35 var(--sans);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .24em;
    cursor: pointer;
}
.premium-media__selected-note { color: var(--forest); }

.premium-media__external-button {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(190px, .75fr);
    border: 1px solid var(--line);
    background: #fdfaf5;
    box-shadow: 12px 14px 0 rgba(23, 18, 15, .025);
    overflow: hidden;
    transition: transform .26s ease, box-shadow .26s ease, border-color .26s ease;
    cursor: pointer;
}
.premium-media__external-button:hover {
    transform: translateY(-3px);
    border-color: var(--line-strong);
    box-shadow: 0 25px 62px rgba(30,21,15,.09), 13px 16px 0 rgba(23,18,15,.025);
}
.premium-media__visual {
    position: relative;
    min-height: clamp(220px, 32vw, 400px);
    display: grid;
    place-items: center;
    overflow: hidden;
    background: var(--forest);
    isolation: isolate;
}
.premium-media--audio .premium-media__visual {
    min-height: 230px;
    background: var(--ink);
}
.premium-media__visual.has-poster img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    margin: 0;
    transform: scale(1.015);
    transition: transform .55s ease;
}
.premium-media__external-button:hover .premium-media__visual.has-poster img { transform: scale(1.045); }
.premium-media__veil {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(17, 14, 12, .28);
}
.premium-media--audio .premium-media__veil { background: rgba(0,0,0,.08); }
.premium-media__monogram {
    position: relative;
    z-index: 0;
    font: italic 400 clamp(6rem, 15vw, 11rem)/.8 var(--display);
    color: rgba(255,253,249,.1);
    transform: translateY(-.03em);
    user-select: none;
}
.premium-media__wave {
    position: absolute;
    inset: auto 12% 18%;
    z-index: 0;
    height: 62px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    opacity: .2;
}
.premium-media__wave i {
    display: block;
    width: 1px;
    height: 26%;
    background: var(--white);
}
.premium-media__wave i:nth-child(2), .premium-media__wave i:nth-child(6) { height: 55%; }
.premium-media__wave i:nth-child(3), .premium-media__wave i:nth-child(5) { height: 82%; }
.premium-media__wave i:nth-child(4) { height: 100%; }
.premium-media__play {
    position: relative;
    z-index: 2;
    width: 76px;
    height: 76px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.72);
    background: rgba(244,239,230,.92);
    color: var(--ink);
    box-shadow: 0 16px 42px rgba(0,0,0,.2);
    transition: transform .24s ease, background .24s ease;
}
.premium-media__play::after {
    content: '';
    position: absolute;
    inset: 6px;
    border: 1px solid rgba(23,18,15,.13);
}
.premium-media__play svg { width: 30px; height: 30px; transform: translateX(2px); }
.premium-media__external-button:hover .premium-media__play { transform: scale(1.06); background: var(--white); }
.premium-media__sound-bars { width: 30px; height: 28px; display: flex; align-items: center; justify-content: center; gap: 3px; }
.premium-media__sound-bars i { display: block; width: 2px; background: currentColor; }
.premium-media__sound-bars i:nth-child(1) { height: 10px; }
.premium-media__sound-bars i:nth-child(2) { height: 23px; }
.premium-media__sound-bars i:nth-child(3) { height: 17px; }
.premium-media__sound-bars i:nth-child(4) { height: 27px; }
.premium-media__provider {
    position: absolute;
    z-index: 2;
    left: 18px;
    bottom: 16px;
    color: rgba(255,255,255,.92);
    font: 650 .67rem/1.2 var(--sans);
    letter-spacing: .06em;
}
.premium-media__external-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(22px, 3.2vw, 36px);
    border-left: 1px solid var(--line);
}
.premium-media__kicker {
    color: var(--accent);
    font: 650 .67rem/1.35 var(--sans);
}
.premium-media__external-copy strong {
    margin-top: .65rem;
    font: 400 clamp(1.35rem, 1.9vw, 1.68rem)/1.12 var(--display);
}
.premium-media__external-copy small {
    margin-top: .8rem;
    color: var(--muted);
    font: 400 .76rem/1.5 var(--sans);
}

/* contributor media input: the upload itself should feel like part of the gift */
.premium-file-field { display: grid; gap: .7rem; }
.premium-file-field__label { color: var(--ink-soft); font-size: .84rem; font-weight: 600; }
.premium-file-picker {
    position: relative;
    min-height: 118px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1rem;
    padding: 1.15rem 1.2rem;
    border: 1px solid var(--line);
    background: rgba(255,253,249,.58);
    cursor: pointer;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.premium-file-picker:hover { border-color: var(--line-strong); background: var(--white); transform: translateY(-1px); }
.premium-file-picker:focus-within { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.premium-file-picker input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
.premium-file-picker__mark {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line-strong);
    color: var(--accent);
    font: 400 1.2rem/1 var(--display);
}
.premium-file-picker__copy strong { display: block; font: 400 1.25rem/1.15 var(--display); }
.premium-file-picker__copy small { display: block; margin-top: .25rem; color: var(--muted); font: 400 .72rem/1.45 var(--sans); }
.premium-file-picker__action { color: var(--accent-dark); font: 650 .72rem/1.3 var(--sans); text-decoration: underline; text-underline-offset: .22em; }
.local-image-preview { margin-top: -.15rem; }
.premium-media--preview { width: min(100%, 44rem); margin: .3rem 0 0; }
.premium-media--preview .premium-media__mat { box-shadow: 0 18px 42px rgba(30,21,15,.06); }
.premium-media__image-preview-static { cursor: default; }
.external-media-live-preview .premium-media { margin-bottom: 0; }

/* focused viewing: the provider becomes infrastructure, not the visual language */
.media-viewer {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: grid;
    place-items: center;
    padding: clamp(14px, 4vw, 44px);
}
.media-viewer[hidden] { display: none !important; }
.media-viewer__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 13, 11, .88);
    backdrop-filter: blur(10px);
}
.media-viewer__dialog {
    position: relative;
    z-index: 1;
    width: min(1120px, 96vw);
    max-height: 92vh;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    background: var(--paper-light);
    border: 1px solid rgba(255,255,255,.16);
    box-shadow: 0 38px 100px rgba(0,0,0,.42);
    overflow: hidden;
}
.media-viewer.is-audio .media-viewer__dialog { width: min(760px, 94vw); }
.media-viewer__header {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 15px 17px 15px 22px;
    border-bottom: 1px solid var(--line);
}
.media-viewer__eyebrow { display: block; color: var(--accent); font: 650 .65rem/1.2 var(--sans); }
.media-viewer__header h2 { margin: .22rem 0 0; font: 400 1.35rem/1.1 var(--display); }
.media-viewer__close {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line-strong);
    background: transparent;
    color: var(--ink);
    font: 300 1.8rem/1 var(--sans);
    cursor: pointer;
}
.media-viewer__close:hover { background: var(--ink); color: var(--white); border-color: var(--ink); }
.media-viewer__content {
    min-height: 0;
    display: grid;
    place-items: center;
    background: #0f0d0b;
    overflow: auto;
}
.media-viewer.is-image .media-viewer__content { padding: clamp(10px, 2vw, 24px); }
.media-viewer__content img {
    display: block;
    max-width: 100%;
    max-height: calc(92vh - 110px);
    width: auto;
    height: auto;
    object-fit: contain;
}
.media-viewer__content iframe {
    width: 100%;
    border: 0;
    display: block;
    background: #000;
}
.media-viewer.is-video .media-viewer__content iframe { aspect-ratio: 16 / 9; min-height: min(65vw, 630px); }
.media-viewer.is-audio .media-viewer__content { background: var(--ink); padding: 28px; }
.media-viewer.is-audio .media-viewer__content iframe { min-height: 180px; height: 180px; }

@media (max-width: 760px) {
    .premium-media__external-button { grid-template-columns: 1fr; }
    .premium-media__external-copy { border-left: 0; border-top: 1px solid var(--line); padding: 20px; }
    .premium-media__visual { min-height: 230px; }
    .premium-media--audio .premium-media__visual { min-height: 190px; }
    .premium-media__play { width: 66px; height: 66px; }
    .premium-media__caption { align-items: flex-start; flex-direction: column; gap: .4rem; }
    .premium-file-picker { grid-template-columns: auto 1fr; }
    .premium-file-picker__action { grid-column: 2; }
    .media-viewer { padding: 8px; }
    .media-viewer__dialog { width: 100%; max-height: 96vh; }
    .media-viewer__header { min-height: 66px; padding: 12px 12px 12px 16px; }
    .media-viewer.is-audio .media-viewer__content { padding: 12px; }
}

/* v0.6.0 — media authoring is part of the gift, not an attachment panel */
.media-authoring {
    margin: clamp(22px, 4vw, 42px) 0 10px;
    padding: clamp(24px, 4vw, 40px) 0 0;
    border-top: 1px solid rgba(23, 18, 15, .2);
}
.media-authoring__intro {
    max-width: 46rem;
    margin-bottom: clamp(22px, 3vw, 34px);
}
.media-authoring__intro h3 {
    margin: .35rem 0 .55rem;
    font: 400 var(--title-section)/1.12 var(--display);
    letter-spacing: -.025em;
}
.media-authoring__intro p { margin: 0; color: var(--ink-soft); line-height: 1.68; max-width: 42rem; }
.media-authoring__grid { display: grid; gap: 0; border-top: 1px solid var(--line); }
.media-authoring-card {
    position: relative;
    display: grid;
    grid-template-columns: minmax(54px, .16fr) minmax(190px, .72fr) minmax(280px, 1.35fr);
    gap: clamp(16px, 2.6vw, 34px);
    align-items: start;
    padding: clamp(24px, 3.5vw, 38px) 0;
    border-bottom: 1px solid var(--line);
}
.media-authoring-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: -1px;
    width: clamp(48px, 7vw, 88px);
    height: 1px;
    background: var(--accent);
}
.media-authoring-card--audio::before { background: var(--forest); }
.media-authoring-card__number {
    color: var(--line-strong);
    font: 600 .68rem/1 var(--sans);
    letter-spacing: .18em;
    padding-top: .32rem;
}
.media-authoring-card__copy h4 {
    margin: 0 0 .45rem;
    font: 400 clamp(1.15rem, 1.45vw, 1.35rem)/1.18 var(--display);
    letter-spacing: -.018em;
}
.media-authoring-card__copy p { margin: 0; color: var(--muted); font-size: .84rem; line-height: 1.62; }
.media-link-field { display: grid; gap: .55rem; }
.media-link-field > span { color: var(--ink-soft); font-size: .82rem; font-weight: 600; }
.media-link-field input {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--line-strong);
    border-radius: 0;
    background: transparent;
    padding: .8rem 0 .72rem;
    color: var(--ink);
    outline: none;
    box-shadow: none;
}
.media-link-field input::placeholder { color: #968a80; }
.media-link-field input:focus { border-bottom-color: var(--accent); box-shadow: 0 1px 0 var(--accent); }
.media-link-field input[aria-invalid="true"] { border-bottom-color: var(--accent-dark); }
.media-link-field small { color: var(--muted); font-size: .72rem; line-height: 1.52; }
.media-input-status { min-height: 1.1em; margin: .2rem 0 0; color: var(--accent-dark); font-size: .72rem; line-height: 1.45; }
.media-authoring-card .external-media-live-preview,
.media-authoring-card .local-image-preview { grid-column: 3; }
.media-authoring-card .premium-file-field { grid-column: 3; }
.media-authoring-card .premium-media--preview { margin-top: .8rem; }
.premium-media__caption--authoring { gap: 1rem; }
.premium-media__caption--authoring > span:first-child { display: grid; gap: .1rem; min-width: 0; }
.premium-media__selected-file { max-width: min(26rem, 72vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-soft); }
.premium-media__selected-note { display: block; color: var(--muted); font-size: .68rem; }
.premium-media__preview-controls { display: inline-flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.premium-media__quiet-action.is-danger { color: var(--accent-dark); }
.admin-media-actions {
    display: flex;
    align-items: center;
    gap: .85rem 1.15rem;
    flex-wrap: wrap;
    padding: .85rem 0;
    border-top: 1px solid rgba(23, 18, 15, .12);
    border-bottom: 1px solid rgba(23, 18, 15, .12);
}
.admin-media-actions > span { color: var(--muted); font-size: .72rem; font-weight: 600; margin-right: auto; }
.text-action.danger-soft { color: var(--accent-dark); opacity: .88; }
.text-action.danger-soft:hover { opacity: 1; }

@media (max-width: 860px) {
    .media-authoring-card { grid-template-columns: 40px 1fr; }
    .media-authoring-card__copy { padding-right: 4px; }
    .media-authoring-card .premium-file-field,
    .media-authoring-card .media-link-field,
    .media-authoring-card .media-input-status,
    .media-authoring-card .external-media-live-preview,
    .media-authoring-card .local-image-preview { grid-column: 2; }
}

@media (max-width: 560px) {
    .media-authoring { margin-top: 28px; }
    .media-authoring-card {
        grid-template-columns: 1fr;
        gap: 14px;
        padding: 28px 0 30px;
    }
    .media-authoring-card__number { grid-column: 1; }
    .media-authoring-card__copy,
    .media-authoring-card .premium-file-field,
    .media-authoring-card .media-link-field,
    .media-authoring-card .media-input-status,
    .media-authoring-card .external-media-live-preview,
    .media-authoring-card .local-image-preview { grid-column: 1; }
    .media-authoring-card__copy p { max-width: 34rem; }
    .premium-media__preview-controls { width: 100%; justify-content: space-between; }
    .premium-media__selected-file { max-width: 72vw; }
    .admin-media-actions { align-items: flex-start; }
    .admin-media-actions > span { width: 100%; margin-right: 0; }
}

/* v0.6.1 — creator-owned media access + recipient delivery */
.gift-controls {
    margin-top: 36px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    border: 1px solid var(--line);
    background: rgba(250,247,241,.52);
    box-shadow: 11px 13px 0 rgba(23,18,15,.025);
}
.gift-control-panel {
    position: relative;
    min-width: 0;
    padding: clamp(26px, 3vw, 38px);
}
.gift-control-panel + .gift-control-panel { border-left: 1px solid var(--line); }
.gift-control-panel::after {
    content: '';
    position: absolute;
    left: clamp(26px, 3vw, 38px);
    right: clamp(26px, 3vw, 38px);
    top: 0;
    height: 2px;
    background: var(--accent);
    transform: scaleX(.14);
    transform-origin: left center;
}
.gift-control-panel--delivery::after { background: var(--forest); }
.gift-control-panel--delivery .mini-kicker { color: var(--forest); }
.gift-control-panel__heading h2 {
    margin: 8px 0 10px;
    max-width: 13em;
    font-family: var(--display);
    font-size: var(--title-section);
    font-weight: 400;
    line-height: 1.14;
    letter-spacing: -.006em;
}
.gift-control-panel__heading p {
    margin: 0 0 24px;
    max-width: 38rem;
    color: var(--ink-soft);
    font-size: .88rem;
    line-height: 1.66;
}
.gift-capability-line {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    padding: 12px 0;
    border-top: 1px solid rgba(159,145,132,.42);
    font-size: .81rem;
}
.gift-capability-line:last-of-type { border-bottom: 1px solid rgba(159,145,132,.42); }
.gift-capability-line strong { font-size: .74rem; letter-spacing: .02em; }
.gift-capability-line.is-on strong { color: var(--forest); }
.gift-capability-line.is-off strong { color: var(--muted); }
.gift-plan-form, .delivery-form { margin-top: 24px; }
.gift-plan-form.is-dirty .plan-save-row .button { background: var(--forest); border-color: var(--forest); color: var(--white); }
.plan-save-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.plan-save-row p { margin: 0; max-width: 23rem; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.gift-control-panel--media[data-preview-plan="premium"]::after { background: var(--forest); transform: scaleX(.42); }
.gift-control-panel--media[data-preview-plan="premium"] .gift-control-panel__heading h2 { color: var(--forest); }
.compact-choice-fieldset { margin: 0 0 16px; padding: 0; border: 0; }
.compact-choice-fieldset legend {
    margin-bottom: 10px;
    color: var(--muted);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .02em;
}
.compact-choice-fieldset label, .delivery-choice {
    position: relative;
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 12px;
    align-items: start;
    padding: 14px 0;
    border-top: 1px solid var(--line);
    cursor: pointer;
}
.compact-choice-fieldset label:last-child, .delivery-choice:last-child { border-bottom: 1px solid var(--line); }
.compact-choice-fieldset input, .delivery-choice input {
    appearance: none;
    width: 15px;
    height: 15px;
    margin: 3px 0 0;
    border: 1px solid var(--line-strong);
    border-radius: 50%;
    background: transparent;
    box-shadow: inset 0 0 0 3px var(--paper-light);
}
.compact-choice-fieldset input:checked, .delivery-choice input:checked { background: var(--forest); border-color: var(--forest); }
.compact-choice-fieldset input:focus-visible, .delivery-choice input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.compact-choice-fieldset span, .delivery-choice span { min-width: 0; }
.compact-choice-fieldset strong, .delivery-choice strong { display: block; font-size: .82rem; line-height: 1.35; }
.compact-choice-fieldset small, .delivery-choice small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.5;
}
.gift-control-action {
    display: grid;
    gap: 14px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}
.gift-control-action p, .gift-control-note { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.gift-control-action .button { justify-self: start; }
.delivery-choice-list { display: grid; }
.delivery-email-field { display: grid; gap: 7px; margin-top: 18px; }
.delivery-email-field > span { font-size: .75rem; font-weight: 700; }
.delivery-email-field input {
    width: 100%;
    min-height: 46px;
    padding: 10px 0;
    border: 0;
    border-bottom: 1px solid var(--line-strong);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    outline: none;
}
.delivery-email-field input:focus { border-bottom-color: var(--accent); box-shadow: 0 1px 0 var(--accent); }
.delivery-email-field small { color: var(--muted); font-size: .7rem; line-height: 1.5; }
.delivery-form > .button { margin-top: 18px; }
.delivery-state {
    display: grid;
    grid-template-columns: 12px 1fr;
    gap: 12px;
    align-items: start;
    margin-top: 18px;
    padding: 16px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}
.delivery-state__mark { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--line-strong); }
.delivery-state--sent .delivery-state__mark, .delivery-state--queued .delivery-state__mark, .delivery-state--scheduled .delivery-state__mark { background: var(--forest); }
.delivery-state--failed .delivery-state__mark { background: var(--accent); }
.delivery-state strong { display: block; font-size: .82rem; }
.delivery-state p { margin: 4px 0 0; color: var(--muted); font-size: .73rem; line-height: 1.5; }
.delivery-actions { margin-top: 18px; }
.delivery-actions form { margin: 0; }
.delivery-actions .button { width: auto; }

@media (max-width: 820px) {
    .gift-controls { grid-template-columns: 1fr; }
    .gift-control-panel + .gift-control-panel { border-left: 0; border-top: 1px solid var(--line); }
}

@media (max-width: 560px) {
    .gift-controls { margin-inline: -1px; }
    .gift-control-panel { padding: 24px 20px 26px; }
    .gift-control-panel::after { left: 20px; right: 20px; }
    .gift-control-panel__heading h2 { font-size: 1.55rem; }
    .gift-capability-line { align-items: flex-start; }
    .gift-control-action .button, .delivery-actions .button, .delivery-form > .button, .gift-plan-form > .button { width: 100%; }
    .plan-save-row { display: grid; }
}



/* v0.6.3 — Memory Box product coherence */
:root { --forest: #173b31; --forest-deep: #0f2a23; }
.header-logout-form { margin: 0; }
.account-login-link,
.header-logout-form .account-login-link {
    appearance: none; border: 1px solid var(--forest); background: var(--forest); color: var(--white);
    min-height: 34px; padding: 8px 13px; font: 600 .72rem/1 var(--sans); letter-spacing: .02em; cursor: pointer;
    text-decoration: none; transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.account-login-link:hover, .header-logout-form .account-login-link:hover { background: var(--ink); border-color: var(--ink); color: var(--white); }
.primary-nav a, .language-switch a, .back-link, .text-action, .quiet-cta a, .memory-report-link { color: var(--forest); }
.primary-nav a:hover, .language-switch a:hover, .back-link:hover, .text-action:hover, .quiet-cta a:hover, .memory-report-link:hover { color: var(--ink); }
.button.primary, .copy-button, .gift-plan-form.is-dirty .plan-save-row .button { background: var(--forest); border-color: var(--forest); color: var(--white); }
.button.primary:hover, .copy-button:hover, .gift-plan-form.is-dirty .plan-save-row .button:hover { background: var(--ink); border-color: var(--ink); color: var(--white); }
/* Deliberate exceptions requested for final-gift flow */
.delivery-form > .button, .manage-final-actions .button[data-delivery-save] { background: var(--paper); color: var(--ink); border-color: var(--line-strong, var(--line)); }
.delivery-form > .button:hover, .manage-final-actions .button[data-delivery-save]:hover { background: var(--white); color: var(--ink); border-color: var(--ink); }
.manage-actions .button.secondary, .manage-actions .button.primary { background: var(--ink); border-color: var(--ink); color: var(--white); }
.manage-actions .button.secondary:hover, .manage-actions .button.primary:hover { background: var(--forest); border-color: var(--forest); }
.recipient-phrase-field { display: grid; gap: 8px; }
.recipient-phrase-field[hidden] { display: none !important; }
.recipient-phrase-field > span { color: var(--ink-soft); font-size: .73rem; font-weight: 700; letter-spacing: .01em; }
.recipient-phrase-field input {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--line-strong);
    border-radius: 0;
    background: rgba(255,253,249,.7);
    color: var(--ink);
    padding: 11px 13px 12px;
    outline: none;
    box-shadow: 5px 5px 0 rgba(23,18,15,.025);
}
.recipient-phrase-field input::placeholder { color: rgba(99,88,79,.62); }
.recipient-phrase-field input:focus { border-color: var(--forest); box-shadow: 5px 5px 0 rgba(36,63,54,.07); }
.recipient-phrase-field small { color: var(--muted); font-size: .72rem; line-height: 1.55; max-width: 64ch; }
.recipient-phrase-field--manage { min-width: 0; width: 100%; }
.recipient-language-control form > .button { min-height: 46px; }
.checkout-options--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.checkout-upgrade-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.checkout-option-price { font-size: 1.02rem; color: var(--forest); }
.gift-control-panel--media[data-preview-plan="celebration"]::after { background: var(--forest); transform: scaleX(.78); }
.gift-control-panel--media[data-preview-plan="celebration"] .gift-control-panel__heading h2 { color: var(--forest); }
.celebration-qr { margin-top: 24px; border-top: 1px solid var(--line); padding-top: 24px; display: grid; grid-template-columns: minmax(150px, 190px) 1fr; gap: 28px; align-items: center; }
.celebration-qr__image { background: #fbf7ef; border: 1px solid var(--line); padding: 12px; }
.celebration-qr__image img { display:block; width:100%; height:auto; }
.celebration-qr__copy h3 { margin: .35rem 0 .55rem; font: 400 1.42rem/1.14 var(--display); }
.celebration-qr__copy p { color: var(--muted); max-width: 56ch; }
.celebration-qr__actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.memory-compact-list { border-top: 1px solid var(--line); }
.memory-compact { border-bottom: 1px solid var(--line); background: transparent; }
.memory-compact > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(130px,.8fr) minmax(180px,1.5fr) auto auto; gap: 18px; align-items:center; padding: 14px 4px; }
.memory-compact > summary::-webkit-details-marker { display:none; }
.memory-compact > summary:hover { color: var(--forest); }
.memory-compact__person { font-weight: 650; }
.memory-compact__title { color: var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.memory-compact__badges { display:flex; gap:5px; flex-wrap:wrap; justify-content:flex-end; }
.memory-compact__badge { border:1px solid rgba(23,59,49,.26); color:var(--forest); padding:3px 6px; font-size:.58rem; font-weight:700; letter-spacing:.08em; }
.memory-compact__open { color:var(--forest); font-size:.72rem; font-weight:650; white-space:nowrap; }
.memory-compact[open] .memory-compact__open { color:var(--ink); }
.memory-compact__body { padding: 8px 4px 26px; max-width: 760px; }
.memories-privacy-note { color: var(--muted); max-width: 72ch; font-size:.8rem; line-height:1.6; margin: -.4rem 0 1.35rem; }
@media (max-width: 860px) {
    .checkout-options--three, .checkout-upgrade-options { grid-template-columns: 1fr; }
    .celebration-qr { grid-template-columns: 1fr; }
    .celebration-qr__image { max-width: 190px; }
    .memory-compact > summary { grid-template-columns: 1fr auto; gap:6px 12px; }
    .memory-compact__title { grid-column: 1 / -1; white-space:normal; }
    .memory-compact__badges { justify-content:flex-start; }
}


/* v0.6.3 action language: cypress by default, black on hover. */
.button.primary, .button.secondary, .button.ghost {
    background: var(--forest); border-color: var(--forest); color: var(--white);
}
.button.primary:hover, .button.secondary:hover, .button.ghost:hover {
    background: var(--ink); border-color: var(--ink); color: var(--white);
}
.button.button-exception-paper {
    background: var(--paper); border-color: var(--line); color: var(--ink);
}
.button.button-exception-paper:hover { background: var(--white); border-color: var(--ink); color: var(--ink); }
.button.button-exception-dark { background: var(--ink); border-color: var(--ink); color: var(--white); }
.button.button-exception-dark:hover { background: var(--forest); border-color: var(--forest); color: var(--white); }
.qr-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.celebration-qr__preview { background:#fbf7ef; border:1px solid var(--line); padding:12px; max-width:210px; }
.celebration-qr__preview img { display:block; width:100%; height:auto; }
.memory-compact__meta { color:var(--muted); font-size:.68rem; display:flex; gap:5px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.memory-compact__meta span { color:var(--forest); border:1px solid rgba(23,59,49,.22); padding:2px 5px; font-size:.55rem; font-weight:700; letter-spacing:.07em; }
@media (max-width: 720px) { .memory-compact__meta { justify-content:flex-start; } }

/* v0.6.3 compact memory index — designed for 50/300-person boxes. */
.memory-list-tools {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin: 0 0 18px;
    padding: 0 2px 14px;
    border-bottom: 1px solid var(--line);
}
.memory-list-search { display: grid; gap: 6px; width: min(360px, 100%); }
.memory-list-search > span { color: var(--muted); font-size: .66rem; font-weight: 700; letter-spacing: .04em; }
.memory-list-search input {
    width: 100%; min-height: 38px; padding: 7px 0; border: 0; border-bottom: 1px solid var(--line-strong);
    border-radius: 0; background: transparent; color: var(--ink); font: 500 .8rem/1.35 var(--sans); outline: none;
}
.memory-list-search input:focus { border-bottom-color: var(--forest); box-shadow: 0 1px 0 var(--forest); }
.memory-list-count { color: var(--muted); font-size: .68rem; white-space: nowrap; }
.memory-list-more-wrap { display: flex; justify-content: center; padding: 20px 0 0; }
.memory-list-more { min-width: 170px; }
.memory-list-empty { margin: 24px 0 0; color: var(--muted); font-size: .8rem; }
.memory-compact[hidden] { display: none !important; }
@media (max-width: 640px) {
    .memory-list-tools { align-items: stretch; flex-direction: column; gap: 10px; }
    .memory-list-search { width: 100%; }
    .memory-list-count { white-space: normal; }
}


/* v0.6.5 — creator access recovery */
.creator-access-panel {
    margin-top: 22px;
    padding: 24px 26px;
    border: 1px solid var(--line);
    border-left: 3px solid var(--forest);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    align-items: center;
    background: #f3eee5;
}
.creator-access-panel__copy { max-width: 760px; }
.creator-access-panel__copy h2 { margin: 5px 0 8px; font: 400 1.42rem/1.14 var(--display); }
.creator-access-panel__copy p { margin: 0; color: var(--ink); font-size: .82rem; line-height: 1.65; }
.creator-access-panel__copy small { display: block; margin-top: 9px; color: var(--muted); font-size: .68rem; line-height: 1.55; }
.creator-access-panel form { margin: 0; }
.creator-access-panel .button { white-space: nowrap; }
@media (max-width: 720px) {
    .creator-access-panel { grid-template-columns: 1fr; padding: 22px 20px; gap: 18px; }
    .creator-access-panel .button { width: 100%; }
}


/* v0.7.3 private-flow visual refinement */
@media (max-width: 720px) {
    .onboarding-intro { grid-template-columns: 1fr; gap: 10px; }
    .onboarding-intro > .eyebrow { grid-column: 1; }
    .onboarding-intro > p:last-child { margin-top: 2px; }
    .recipient-language-control form { grid-template-columns: 1fr; }
    .recipient-language-control form > .button { width: 100%; }
    .recipient-language-options { grid-column: 1; }
    .page-creator-manage .manage-heading h1 { max-width: 100%; }
}

/* v0.7.4 — quieter private hierarchy and crafted native controls */
.page-creator-create .form-shell > h1,
.page-creator-manage .manage-heading h1,
.page-checkout-page .checkout-shell > h1,
.page-checkout-return .checkout-shell > h1 {
    max-width: 18ch;
    font-size: var(--title-page);
    line-height: 1.06;
    letter-spacing: -.008em;
    text-wrap: balance;
}
.page-creator-manage .manage-heading h1 { max-width: 16ch; }

.page-creator-manage .onboarding-intro h2 {
    max-width: 22ch;
    font-size: var(--title-section);
    line-height: 1.12;
    letter-spacing: 0;
    text-wrap: balance;
}
.page-creator-manage .onboarding-intro > p:last-child {
    max-width: 31rem;
    font-size: .82rem;
    line-height: 1.68;
}
.page-creator-manage .onboarding-step h3 {
    font-size: 1.12rem;
    line-height: 1.16;
}
.page-creator-manage .gift-control-panel__heading h2 {
    max-width: 16em;
    font-size: var(--title-section);
    line-height: 1.12;
    letter-spacing: 0;
    text-wrap: balance;
}
.page-creator-manage .section-heading h2 {
    max-width: 24ch;
    margin-bottom: 14px;
    font-size: var(--title-section);
    line-height: 1.13;
    text-wrap: balance;
}
.page-creator-manage .creator-access-panel__copy h2 {
    font-size: 1.38rem;
    line-height: 1.14;
}

/* Selects are rendered as paper controls with a drawn cypress chevron. */
.editorial-form select,
.admin-filters select,
.recipient-cover-focus select {
    appearance: none;
    -webkit-appearance: none;
    min-height: 48px;
    border: 1px solid var(--line-strong);
    border-radius: 0;
    background-color: rgba(255,253,249,.82);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cpath d='M5 7.25 9 11l4-3.75' fill='none' stroke='%23173b31' stroke-width='1.4' stroke-linecap='square' stroke-linejoin='miter'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 18px 18px;
    color: var(--ink);
    padding: 11px 46px 12px 13px;
    box-shadow: 5px 5px 0 rgba(23,18,15,.025);
    cursor: pointer;
}
.editorial-form select:hover,
.admin-filters select:hover,
.recipient-cover-focus select:hover { border-color: rgba(23,59,49,.62); }
.editorial-form select:focus,
.admin-filters select:focus,
.recipient-cover-focus select:focus {
    border-color: var(--forest);
    box-shadow: 5px 5px 0 rgba(36,63,54,.07);
}

/* Date and time controls keep the native picker behaviour under a branded face. */
.editorial-form input[type="date"],
.editorial-form input[type="time"],
.editorial-form input[type="datetime-local"] {
    position: relative;
    min-height: 48px;
    border: 1px solid var(--line-strong);
    border-radius: 0;
    background-color: rgba(255,253,249,.82);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Crect x='3.25' y='4.25' width='11.5' height='10.25' fill='none' stroke='%23173b31' stroke-width='1.2'/%3E%3Cpath d='M5.75 2.75v3M12.25 2.75v3M3.25 7.25h11.5' fill='none' stroke='%23173b31' stroke-width='1.2'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 18px 18px;
    color: var(--ink);
    padding: 11px 46px 12px 13px;
    box-shadow: 5px 5px 0 rgba(23,18,15,.025);
    color-scheme: light;
    cursor: pointer;
}
.editorial-form input[type="date"]:hover,
.editorial-form input[type="time"]:hover,
.editorial-form input[type="datetime-local"]:hover { border-color: rgba(23,59,49,.62); }
.editorial-form input[type="date"]:focus,
.editorial-form input[type="time"]:focus,
.editorial-form input[type="datetime-local"]:focus {
    border-color: var(--forest);
    box-shadow: 5px 5px 0 rgba(36,63,54,.07);
}
.editorial-form input[type="date"]::-webkit-calendar-picker-indicator,
.editorial-form input[type="time"]::-webkit-calendar-picker-indicator,
.editorial-form input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    position: absolute;
    inset: 0 0 0 auto;
    width: 46px;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: pointer;
}
.editorial-form select:focus-visible,
.admin-filters select:focus-visible,
.recipient-cover-focus select:focus-visible,
.editorial-form input[type="date"]:focus-visible,
.editorial-form input[type="time"]:focus-visible,
.editorial-form input[type="datetime-local"]:focus-visible {
    outline: 2px solid rgba(171,0,83,.18);
    outline-offset: 3px;
}

@media (max-width: 720px) {
    .page-creator-create .form-shell > h1,
    .page-creator-manage .manage-heading h1,
    .page-checkout-page .checkout-shell > h1,
    .page-checkout-return .checkout-shell > h1 {
        max-width: 100%;
        font-size: clamp(1.85rem, 8.4vw, 2.35rem);
        line-height: 1.06;
    }
    .page-creator-manage .onboarding-intro h2 { font-size: clamp(1.4rem, 6vw, 1.7rem); }
    .page-creator-manage .gift-control-panel__heading h2 { font-size: 1.48rem; }
    .editorial-form select,
    .recipient-cover-focus select,
    .editorial-form input[type="date"],
    .editorial-form input[type="time"],
    .editorial-form input[type="datetime-local"] {
        min-height: 50px;
        background-position: right 13px center;
        padding-left: 12px;
    }
}

/* v0.7.8 — per-box recipient cover */
.recipient-cover-panel {
    margin: 34px 0 46px;
    padding: clamp(26px, 4vw, 38px);
    border: 1px solid var(--line);
    background: rgba(250,247,241,.56);
}
.recipient-cover-panel__intro { max-width: 700px; }
.recipient-cover-panel__intro h2 {
    margin: 7px 0 0;
    font-family: var(--display);
    font-size: var(--title-section);
    font-weight: 400;
    line-height: 1.12;
}
.recipient-cover-panel__intro p {
    margin: 12px 0 0;
    max-width: 640px;
    color: var(--muted);
    line-height: 1.65;
}
.recipient-cover-panel .notice--contextual { margin: 22px 0 0; }
.recipient-cover-editor { margin-top: 26px; }
.recipient-cover-editor__preview {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 5;
    overflow: hidden;
    border: 1px solid var(--line);
    background: var(--paper-light);
    box-shadow: 12px 15px 0 rgba(23,18,15,.025);
}
.recipient-cover-editor__preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.recipient-cover-editor__preview::after {
    content: '';
    position: absolute;
    inset: 8px;
    border: 1px solid rgba(255,253,249,.38);
    pointer-events: none;
}
.recipient-cover-editor__preview.is-empty::after { border-color: rgba(137,119,101,.12); }
.recipient-cover-editor__empty {
    min-height: 100%;
    display: grid;
    align-content: center;
    justify-items: start;
    gap: 6px;
    padding: clamp(24px, 5vw, 48px);
    background: #f7f2ea;
}
.recipient-cover-editor__empty strong {
    font-family: var(--display);
    font-size: 1.35rem;
    font-weight: 400;
}
.recipient-cover-editor__empty span { color: var(--muted); font-size: .82rem; line-height: 1.55; }
.recipient-cover-form {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr);
    gap: 20px 24px;
    align-items: end;
    margin-top: 24px;
}
.recipient-cover-form .premium-file-field,
.recipient-cover-focus { margin: 0; }
.recipient-cover-focus > span {
    display: block;
    margin-bottom: 8px;
    font-size: .76rem;
    font-weight: 650;
    color: var(--ink);
}
.recipient-cover-focus select {
    width: 100%;
    font-size: .82rem;
    font-weight: 550;
    line-height: 1.3;
}
.recipient-cover-focus select option {
    background: #fffdf9;
    color: var(--ink);
}
.recipient-cover-focus small {
    display: block;
    margin-top: 7px;
    color: var(--muted);
    font-size: .7rem;
    line-height: 1.45;
}
.recipient-cover-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; }
.recipient-cover-remove { margin: 16px 0 0; }

@media (max-width: 720px) {
    .recipient-cover-panel { margin-block: 28px 38px; padding: 22px 18px; }
    .recipient-cover-editor__preview { aspect-ratio: 4 / 3; }
    .recipient-cover-form { grid-template-columns: 1fr; gap: 18px; }
    .recipient-cover-actions { grid-column: 1; }
}

/* v0.8.2 — guided purchase -> payment -> collection flow */
.page-creator-manage .gift-controls {
    grid-template-columns: minmax(0, 1fr);
    background: rgba(250,247,241,.68);
}
.page-creator-manage .gift-control-panel + .gift-control-panel {
    border-left: 0;
    border-top: 1px solid var(--line);
}
.page-creator-manage .gift-control-panel {
    padding: clamp(30px, 4vw, 46px);
}
.page-creator-manage .gift-control-panel__heading h2 {
    max-width: 22ch;
}
.compact-choice-fieldset--priced label {
    grid-template-columns: 18px minmax(0, 1fr) auto;
    align-items: center;
}
.compact-choice-fieldset--priced label > b {
    color: var(--forest);
    font: 500 1rem/1 var(--display);
    white-space: nowrap;
}
.purchase-addon-choice {
    margin: 18px 0 20px;
    padding: 18px 20px;
    border: 1px solid color-mix(in srgb, var(--forest) 24%, var(--line));
    background: color-mix(in srgb, var(--forest) 3%, var(--paper-light));
}
.purchase-addon-choice label {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    cursor: pointer;
}
.purchase-addon-choice input {
    appearance: none;
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    margin: 0;
    border: 1px solid var(--line-strong);
    background: transparent;
    display: grid;
    place-content: center;
}
.purchase-addon-choice input::before {
    content: '';
    width: 8px;
    height: 5px;
    border-left: 1.5px solid var(--white);
    border-bottom: 1.5px solid var(--white);
    transform: rotate(-45deg) scale(0);
    margin-top: -2px;
    transition: transform .12s ease;
}
.purchase-addon-choice input:checked {
    border-color: var(--forest);
    background: var(--forest);
}
.purchase-addon-choice input:checked::before { transform: rotate(-45deg) scale(1); }
.purchase-addon-choice input:focus-visible { outline: 2px solid rgba(162,15,84,.24); outline-offset: 3px; }
.purchase-addon-choice span { min-width: 0; }
.purchase-addon-choice strong { display: block; font-size: .82rem; line-height: 1.35; }
.purchase-addon-choice small { display: block; margin-top: 4px; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.purchase-addon-choice b { color: var(--forest); font: 500 1rem/1 var(--display); white-space: nowrap; }
.purchase-addon-choice > p {
    margin: 13px 0 0 30px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: .7rem;
    line-height: 1.5;
}
.purchase-gate {
    position: relative;
    margin-top: 26px;
    padding: clamp(28px, 4vw, 42px);
    border: 1px solid color-mix(in srgb, var(--forest) 32%, var(--line));
    background: color-mix(in srgb, var(--forest) 4%, var(--paper));
    box-shadow: 11px 13px 0 rgba(23,18,15,.025);
}
.purchase-gate::before {
    content: '';
    position: absolute;
    top: 0;
    left: clamp(28px, 4vw, 42px);
    width: 74px;
    height: 2px;
    background: var(--forest);
}
.purchase-gate__copy h2 {
    margin: 8px 0 10px;
    max-width: 19ch;
    font: 400 clamp(1.7rem, 4vw, 2.35rem)/1.08 var(--display);
    letter-spacing: -.01em;
}
.purchase-gate__copy p {
    max-width: 42rem;
    margin: 0;
    color: var(--ink-soft);
    font-size: .86rem;
    line-height: 1.65;
}
.purchase-gate__summary {
    margin: 25px 0 20px;
    border-top: 1px solid var(--line);
}
.purchase-gate__summary > div {
    display: grid;
    grid-template-columns: minmax(90px,.55fr) minmax(0,1fr) auto;
    gap: 18px;
    align-items: baseline;
    padding: 13px 0;
    border-bottom: 1px solid var(--line);
}
.purchase-gate__summary span { color: var(--muted); font-size: .7rem; }
.purchase-gate__summary strong { font-size: .82rem; }
.purchase-gate__summary b { color: var(--forest); font: 500 1rem/1 var(--display); white-space: nowrap; }
.purchase-gate__summary .purchase-gate__total {
    border-bottom: 0;
    padding-top: 18px;
}
.purchase-gate__summary .purchase-gate__total strong {
    grid-column: 2 / 4;
    justify-self: end;
    color: var(--ink);
    font: 500 clamp(1.9rem, 5vw, 2.7rem)/1 var(--display);
}
.purchase-gate__button { min-width: 220px; justify-content: center; }
.purchase-gate > small {
    display: block;
    max-width: 40rem;
    margin-top: 12px;
    color: var(--muted);
    font-size: .69rem;
    line-height: 1.55;
}
.recipient-link.is-locked { background: rgba(23,59,49,.018); }
.recipient-link-lock {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 15px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    color: var(--muted);
}
.recipient-link-lock span { color: var(--forest); }
.recipient-link-lock strong { font-size: .76rem; font-weight: 650; }

.checkout-review {
    position: relative;
    z-index: 1;
    padding-bottom: 4px;
}
.checkout-review h2 {
    margin: 7px 0 20px;
    max-width: 19ch;
    font: 400 clamp(1.65rem, 4vw, 2.2rem)/1.08 var(--display);
}
.checkout-review__row {
    display: grid;
    grid-template-columns: minmax(90px,.5fr) minmax(0,1fr) auto;
    gap: 18px;
    align-items: baseline;
    padding: 14px 0;
    border-top: 1px solid var(--line);
}
.checkout-review__row span { color: var(--muted); font-size: .7rem; }
.checkout-review__row strong { font-size: .82rem; }
.checkout-review__row b { color: var(--forest); font: 500 1.02rem/1 var(--display); white-space: nowrap; }
.checkout-review__total {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-top: 4px;
    padding: 18px 0 12px;
    border-top: 1px solid var(--ink);
}
.checkout-review__total span { color: var(--ink-soft); font-size: .78rem; }
.checkout-review__total strong { font: 500 clamp(2rem,5vw,2.8rem)/.95 var(--display); }
.checkout-review .text-action { display: inline-flex; margin-top: 7px; font-size: .72rem; }
.checkout-vat-note {
    position: relative;
    z-index: 1;
    margin: -5px 0 0;
    color: var(--muted);
    font-size: .69rem;
}

@media (max-width: 620px) {
    .compact-choice-fieldset--priced label,
    .purchase-addon-choice label {
        grid-template-columns: 18px minmax(0, 1fr);
    }
    .compact-choice-fieldset--priced label > b,
    .purchase-addon-choice b {
        grid-column: 2;
        justify-self: start;
        margin-top: 2px;
    }
    .purchase-addon-choice > p { margin-left: 0; }
    .purchase-gate__summary > div,
    .checkout-review__row {
        grid-template-columns: 1fr auto;
        gap: 7px 14px;
    }
    .purchase-gate__summary > div span,
    .checkout-review__row span { grid-column: 1 / 3; }
    .purchase-gate__summary > div strong,
    .checkout-review__row strong { grid-column: 1; }
    .purchase-gate__summary > div b,
    .checkout-review__row b { grid-column: 2; }
    .purchase-gate__summary .purchase-gate__total strong { grid-column: 1 / 3; }
    .purchase-gate__button { width: 100%; }
}
