:root {
    --ink-950: #231b1d;
    --ink-850: #3d3033;
    --ink-700: #5c4d50;
    --ink-500: #817275;
    --ink-300: #b1a3a5;
    --paper: #fffdfa;
    --paper-2: #fbf6ef;
    --paper-3: #f4ece3;
    --rose-800: #701f30;
    --rose-700: #7d2639;
    --rose-600: #934356;
    --rose-500: #ad6272;
    --rose-100: #f7e9ed;
    --green-700: #315f4c;
    --red-700: #913737;
    --gold-500: #b58b4b;
    --border: #e4d7cd;
    --border-strong: #d2bfb3;
    --white: #ffffff;
    --shadow-soft: 0 14px 34px rgba(49, 31, 36, .08);
    --shadow-card: 0 24px 65px rgba(49, 31, 36, .12);
    --shadow-deep: 0 30px 90px rgba(30, 18, 22, .22);
    --radius-sm: 12px;
    --radius-md: 20px;
    --radius-lg: 30px;
    --shell: 1180px;
    --serif: Georgia, "Times New Roman", serif;
    --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--ink-950);
    background: var(--paper);
    font-family: var(--sans);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background:
        radial-gradient(circle at 10% 0%, rgba(181, 139, 75, .05), transparent 30%),
        radial-gradient(circle at 95% 18%, rgba(158, 72, 88, .05), transparent 28%),
        var(--paper);
}

body.modal-open {
    overflow: hidden;
}

img {
    max-width: 100%;
}

a {
    color: inherit;
}

button,
input,
select,
textarea {
    font: inherit;
}

button {
    cursor: pointer;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1,
h2,
h3 {
    color: var(--ink-950);
    font-family: var(--serif);
    line-height: 1.06;
    letter-spacing: -.035em;
}

h1 {
    font-size: clamp(3.2rem, 7vw, 6.5rem);
}

h2 {
    font-size: clamp(2.15rem, 4vw, 3.8rem);
}

[hidden] {
    display: none;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: fixed;
    top: -80px;
    left: 1rem;
    z-index: 2000;
    padding: .8rem 1rem;
    border-radius: var(--radius-sm);
    background: var(--ink-950);
    color: var(--white);
}

.skip-link:focus {
    top: 1rem;
}

.shell {
    width: min(calc(100% - 2rem), var(--shell));
    margin-inline: auto;
}

.eyebrow {
    display: inline-block;
    margin-bottom: .9rem;
    color: var(--rose-700);
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.eyebrow-light {
    color: #f3b6c2;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: .82rem 1.3rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 850;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.button:hover {
    transform: translateY(-2px);
}

.button-primary {
    background: linear-gradient(135deg, var(--rose-700), var(--rose-600));
    color: var(--white);
    box-shadow: 0 14px 30px rgba(135, 56, 71, .22);
}

.button-primary:hover {
    background: linear-gradient(135deg, #672836, #8b3b4a);
}

.button-secondary {
    border-color: var(--border-strong);
    background: rgba(255,255,255,.82);
    color: var(--ink-950);
}

.button-light {
    background: var(--paper);
    color: var(--ink-950);
}

.button-danger {
    background: var(--red-700);
    color: var(--white);
}

.button-small {
    min-height: 40px;
    padding: .55rem 1rem;
    font-size: .88rem;
}

.button-full {
    width: 100%;
}

.button-row {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
}

.text-link,
.text-button {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    border: 0;
    padding: 0;
    background: none;
    color: var(--rose-700);
    font-weight: 850;
    text-decoration: none;
}

.site-header {
    position: relative;
    z-index: 30;
    border-bottom: 1px solid rgba(228, 215, 205, .72);
    background: rgba(255, 253, 250, .92);
    backdrop-filter: blur(15px);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 78px;
}

.brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.site-logo-link {
    flex: 0 0 auto;
}

.site-logo {
    display: block;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.site-logo-header {
    width: clamp(245px, 24vw, 365px);
    height: auto;
    max-height: 68px;
}

.primary-nav {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.primary-nav > a,
.nav-link-button {
    border: 0;
    padding: .35rem 0;
    background: none;
    color: var(--ink-700);
    font-weight: 750;
    text-decoration: none;
}

.primary-nav > a:hover,
.nav-link-button:hover {
    color: var(--rose-700);
}

.primary-nav > .header-join-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .68rem 1.15rem;
    border: 1px solid rgba(126, 55, 70, .22);
    border-radius: 999px;
    background: linear-gradient(135deg, #8f4655, #713343);
    color: #fff;
    font-size: .9rem;
    font-weight: 850;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 10px 22px rgba(113, 51, 67, .2);
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.primary-nav > .header-join-button:hover {
    transform: translateY(-1px);
    background: linear-gradient(135deg, #7f3d4b, #5f2937);
    color: #fff;
    box-shadow: 0 14px 28px rgba(113, 51, 67, .27);
}

.primary-nav > .header-join-button:focus-visible {
    outline: 3px solid rgba(143, 70, 85, .3);
    outline-offset: 3px;
}

.nav-toggle {
    display: none;
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
}

.nav-toggle span:not(.sr-only) {
    display: block;
    width: 22px;
    height: 2px;
    margin: 4px auto;
    background: var(--ink-950);
}

.flash-wrap {
    position: relative;
    z-index: 40;
}

.flash {
    margin-top: 1rem;
    padding: 1rem 1.2rem;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-soft);
}

.flash-success {
    border: 1px solid #bad7c9;
    background: #edf8f2;
    color: #245943;
}

.hero {
    overflow: hidden;
    padding: clamp(4.5rem, 9vw, 8rem) 0;
    background:
        radial-gradient(circle at 78% 15%, rgba(184, 93, 108, .13), transparent 31%),
        linear-gradient(145deg, #fffdfa, #f8f0e7);
}

.hero-grid {
    display: grid;
    grid-template-columns: 1.02fr .98fr;
    align-items: center;
    gap: clamp(3rem, 7vw, 6rem);
}

.hero h1 {
    margin-bottom: 1.4rem;
}

.hero h1 em {
    color: var(--rose-700);
    font-weight: 400;
}

.hero-copy > p {
    max-width: 640px;
    margin-bottom: 2rem;
    color: var(--ink-700);
    font-size: clamp(1.06rem, 1.8vw, 1.24rem);
}

.hero-trust {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem 1.3rem;
    margin-top: 1.8rem;
    color: var(--ink-500);
    font-size: .86rem;
}

.hero-trust span::before {
    content: "✓";
    margin-right: .4rem;
    color: var(--green-700);
    font-weight: 900;
}

.hero-art {
    position: relative;
    min-height: 525px;
}

.wall-board {
    position: absolute;
    inset: 2% 0;
    border: 14px solid #ad8968;
    border-radius: 26px;
    background:
        linear-gradient(rgba(255,255,255,.08), rgba(255,255,255,.08)),
        repeating-linear-gradient(45deg, #d6b592 0 14px, #cfa982 14px 28px);
    box-shadow: 0 34px 70px rgba(72, 47, 41, .22);
}

.sample-note {
    position: absolute;
    width: 265px;
    min-height: 174px;
    padding: 1.5rem;
    background:
        repeating-linear-gradient(to bottom, transparent 0, transparent 30px, rgba(109, 82, 75, .07) 31px),
        #fffaf0;
    box-shadow: 0 20px 36px rgba(46, 29, 31, .18);
    font-family: var(--serif);
}

.sample-note::before {
    content: "";
    position: absolute;
    top: -7px;
    left: 50%;
    width: 13px;
    height: 13px;
    transform: translateX(-50%);
    border: 2px solid rgba(255,255,255,.75);
    border-radius: 50%;
    background: var(--rose-700);
    box-shadow: 0 4px 7px rgba(0,0,0,.2);
}

.sample-note small {
    color: var(--rose-700);
    font-family: var(--sans);
    font-size: .76rem;
    font-weight: 900;
}

.sample-note p {
    margin: .75rem 0 0;
    font-size: 1.16rem;
    line-height: 1.45;
}

.sample-note-one {
    top: 10%;
    left: -2%;
    transform: rotate(-4deg);
}

.sample-note-two {
    top: 36%;
    right: -1%;
    transform: rotate(4deg);
}

.sample-note-three {
    bottom: 3%;
    left: 16%;
    transform: rotate(-1deg);
}

.section {
    padding: clamp(4.5rem, 8vw, 7rem) 0;
}

.section-tinted {
    background: var(--paper-2);
}

.section-heading {
    margin-bottom: 2.6rem;
}

.section-heading h2 {
    max-width: 760px;
    margin-bottom: .8rem;
}

.section-heading p {
    max-width: 650px;
    color: var(--ink-700);
}

.section-heading-centered {
    text-align: center;
}

.section-heading-centered h2,
.section-heading-centered p {
    margin-inline: auto;
}

.section-heading-split {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.category-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}

.category-card {
    position: relative;
    display: grid;
    min-height: 205px;
    padding: 1.35rem;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: rgba(255,255,255,.72);
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(46, 28, 32, .04);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.category-card:hover {
    transform: translateY(-5px);
    border-color: var(--border-strong);
    box-shadow: var(--shadow-soft);
}

.category-card strong {
    align-self: end;
    margin-top: 2rem;
    font-family: var(--serif);
    font-size: 1.28rem;
    line-height: 1.15;
}

.category-card small {
    margin-top: .55rem;
    color: var(--ink-500);
    line-height: 1.5;
}

.category-mark,
.category-dot {
    display: inline-block;
    border-radius: 50%;
}

.category-mark {
    width: 36px;
    height: 36px;
}

.category-dot {
    width: 10px;
    height: 10px;
}

.category-arrow {
    position: absolute;
    right: 1.2rem;
    bottom: 1rem;
    color: var(--rose-700);
    font-weight: 900;
}

.accent-rose { background: #c25d72; }
.accent-rust { background: #ba6a4f; }
.accent-violet { background: #8e78aa; }
.accent-amber { background: #d09b43; }
.accent-sage { background: #79927b; }
.accent-blue { background: #6d8fae; }
.accent-peach { background: #d88c72; }
.accent-teal { background: #4f928e; }
.accent-plum { background: #8d5f84; }
.accent-slate { background: #7c848d; }
.accent-sand { background: #b4a078; }

.letters-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.35rem;
}

.letter-card {
    --card-paper: #fffaf1;
    --card-edge: #e5d4c3;
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 390px;
    padding: 1.65rem;
    overflow: hidden;
    border: 1px solid var(--card-edge);
    border-radius: 8px 24px 10px 20px;
    background:
        repeating-linear-gradient(to bottom, transparent 0, transparent 34px, rgba(115, 82, 76, .055) 35px),
        var(--card-paper);
    box-shadow: var(--shadow-card);
    isolation: isolate;
    transition: transform .22s ease, box-shadow .22s ease;
}

.letter-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: .24;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");
    pointer-events: none;
}

.letter-card::after {
    content: "";
    position: absolute;
    right: -30px;
    bottom: -30px;
    width: 105px;
    height: 105px;
    border: 1px solid rgba(135, 56, 71, .2);
    border-radius: 50%;
    box-shadow: inset 0 0 0 9px rgba(135, 56, 71, .035);
    pointer-events: none;
}

.letter-card:hover {
    transform: translateY(-8px) rotate(-.25deg);
    box-shadow: 0 32px 78px rgba(49, 31, 36, .18);
}

.letter-card-tone-2 { --card-paper: #fff6f3; --card-edge: #ead0cf; }
.letter-card-tone-3 { --card-paper: #f7f5ec; --card-edge: #dcd8c4; }
.letter-card-tone-4 { --card-paper: #f8f3f8; --card-edge: #ded0df; }
.letter-card-tone-5 { --card-paper: #f1f7f3; --card-edge: #cfe0d6; }

.letter-card-tape {
    position: absolute;
    top: -7px;
    left: 50%;
    width: 72px;
    height: 24px;
    transform: translateX(-50%) rotate(-1deg);
    background: rgba(222, 198, 163, .7);
    box-shadow: 0 3px 5px rgba(54, 35, 39, .08);
}

.letter-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-top: .65rem;
}

.letter-card-category {
    display: flex;
    align-items: center;
    gap: .5rem;
    color: var(--ink-500);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.letter-card-category a {
    text-decoration: none;
}


.letter-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 2rem .1rem 1.4rem;
}

.letter-card-to {
    margin-bottom: .4rem;
    color: var(--rose-700);
    font-family: var(--serif);
    font-size: .98rem;
    font-style: italic;
}

.letter-card h2 {
    max-width: 92%;
    margin: .65rem 0 .95rem;
    font-size: clamp(1.6rem, 2vw, 2.05rem);
    line-height: 1.08;
}

.letter-card h2 a {
    text-decoration: none;
}

.letter-card-excerpt {
    margin-bottom: 0;
    color: var(--ink-700);
    font-family: var(--serif);
    font-size: 1.03rem;
    line-height: 1.72;
}

.letter-card-foot {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1.15rem;
    border-top: 1px dashed rgba(92, 77, 80, .28);
}

.letter-card-author {
    display: grid;
    gap: .1rem;
}

.letter-card-author > span {
    font-family: var(--serif);
    font-size: .94rem;
    font-style: italic;
}

.letter-card-author time {
    color: var(--ink-300);
    font-size: .74rem;
}

.letter-card-read {
    color: var(--rose-700);
    font-size: .82rem;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.letter-card-read span {
    display: inline-block;
    transition: transform .18s ease;
}

.letter-card:hover .letter-card-read span {
    transform: translateX(4px);
}

.empty-state {
    padding: 4rem 2rem;
    border: 1px dashed var(--border-strong);
    border-radius: var(--radius-lg);
    background: var(--paper-2);
    text-align: center;
}

.empty-state-mark {
    display: inline-block;
    margin-bottom: 1rem;
    color: var(--rose-700);
    font-size: 1.8rem;
}

.empty-state h2,
.empty-state h3 {
    margin-bottom: .7rem;
}

.empty-state p {
    color: var(--ink-700);
}

.gateway-section {
    padding-top: 0;
}

.gateway-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
    padding: clamp(2.7rem, 6vw, 5rem);
    border-radius: var(--radius-lg);
    background:
        radial-gradient(circle at 85% 15%, rgba(184, 93, 108, .26), transparent 28%),
        var(--ink-950);
    color: var(--white);
    box-shadow: var(--shadow-card);
}

.gateway-panel h2 {
    max-width: 720px;
    color: var(--white);
}

.gateway-panel p {
    max-width: 760px;
    margin-bottom: 0;
    color: #d6cbcd;
}

.page-hero {
    padding: clamp(3rem, 5vw, 4.5rem) 0;
    background:
        radial-gradient(circle at 85% 12%, rgba(184, 93, 108, .10), transparent 26%),
        var(--paper-2);
}

.page-hero-inner h1 {
    max-width: 900px;
    margin-bottom: 1rem;
    font-size: clamp(3.1rem, 6vw, 5.4rem);
}

.page-hero-inner p {
    max-width: 650px;
    color: var(--ink-700);
    font-size: 1.08rem;
}

.wall-hero {
    min-height: auto;
    padding: clamp(3rem, 5vw, 4.6rem) 0;
}

.wall-hero-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(2rem, 5vw, 5rem);
    align-items: end;
}

.wall-hero-copy {
    max-width: 780px;
}

.wall-hero h1 {
    max-width: 760px;
    margin: .55rem 0 .9rem;
    font-size: clamp(2.8rem, 5.3vw, 4.75rem);
    line-height: .96;
}

.wall-hero p {
    max-width: 620px;
    margin: 0;
    color: var(--ink-700);
    font-size: 1.03rem;
    line-height: 1.65;
}

.wall-hero-action {
    display: grid;
    gap: .65rem;
    justify-items: start;
    padding-bottom: .15rem;
}

.wall-hero-action span {
    color: var(--ink-500);
    font-size: .78rem;
}

.wall-section {
    padding-top: 2rem;
}

.wall-category-filter {
    margin-bottom: 2rem;
    padding: .85rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(255, 253, 249, .82);
    box-shadow: 0 10px 28px rgba(49, 31, 36, .05);
}

.filter-strip {
    display: flex;
    flex-wrap: wrap;
    gap: .58rem;
    margin: 0;
    padding: 0;
    overflow: visible;
}

.filter-strip-secondary {
    margin-top: .65rem;
    padding-top: .65rem;
    border-top: 1px solid var(--border);
}

.filter-strip-secondary[hidden] {
    display: none;
}

.filter-strip a,
.filter-more-button {
    display: inline-flex;
    flex: 0 0 auto;
    gap: .4rem;
    align-items: center;
    min-height: 42px;
    padding: .62rem .95rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    color: var(--ink-700);
    font: inherit;
    font-size: .84rem;
    font-weight: 850;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

.filter-strip a:hover,
.filter-more-button:hover {
    transform: translateY(-1px);
    border-color: var(--border-strong);
    background: #fff;
}

.filter-strip a.is-active {
    border-color: var(--rose-700);
    background: var(--rose-700);
    color: var(--white);
}

.filter-more-button {
    border-style: dashed;
    color: var(--rose-700);
}

.filter-more-icon {
    display: inline-block;
    font-size: 1rem;
    transition: transform .18s ease;
}

.wall-category-filter.is-expanded .filter-more-icon {
    transform: rotate(180deg);
}

.cursor-nav {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 3rem;
}

.write-page {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    background:
        radial-gradient(circle at 11% 5%, rgba(181, 139, 75, .08), transparent 25%),
        linear-gradient(135deg, var(--paper-2), var(--paper));
}

.write-grid {
    display: grid;
    grid-template-columns: .78fr 1.22fr;
    align-items: start;
    gap: clamp(2.5rem, 6vw, 5rem);
}

.write-sidebar {
    position: sticky;
    top: 2rem;
}

.write-sidebar h1 {
    margin-bottom: 1.25rem;
    font-size: clamp(3rem, 5vw, 5rem);
}

.write-sidebar > p {
    color: var(--ink-700);
    font-size: 1.08rem;
}

.write-help {
    margin-top: 2rem;
    padding: 1.35rem;
    border-left: 4px solid var(--rose-700);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    background: var(--rose-100);
}

.write-help ul {
    margin-bottom: 0;
    padding-left: 1.2rem;
    color: var(--ink-700);
}

.form-card,
.auth-card {
    padding: clamp(1.5rem, 4vw, 2.7rem);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(255,255,255,.9);
    box-shadow: var(--shadow-card);
}

.letter-form,
.auth-card form {
    display: grid;
    gap: 1.35rem;
}

.field {
    display: grid;
    gap: .55rem;
}

.field label,
.visibility-field legend {
    color: var(--ink-850);
    font-weight: 850;
}

.field label span {
    color: var(--ink-300);
    font-weight: 500;
}

.field input,
.field select,
.field textarea,
.report-form input,
.report-form select,
.report-form textarea,
.moderation-actions input {
    width: 100%;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
    background: #fffefc;
    color: var(--ink-950);
    outline: none;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.field input,
.field select,
.report-form input,
.report-form select,
.moderation-actions input {
    min-height: 52px;
    padding: .78rem .9rem;
}

.field textarea,
.report-form textarea {
    padding: .95rem;
    resize: vertical;
}

.field input:focus,
.field select:focus,
.field textarea:focus,
.report-form input:focus,
.report-form select:focus,
.report-form textarea:focus {
    border-color: var(--rose-500);
    box-shadow: 0 0 0 4px rgba(184, 93, 108, .12);
}

.field small {
    color: var(--ink-500);
}

.two-column-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.label-row span {
    color: var(--ink-300);
    font-size: .8rem;
}

.visibility-field {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding: 0;
    border: 0;
}

.choice-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .85rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(255,255,255,.68);
    cursor: pointer;
}

.choice-card:has(input:checked) {
    border-color: var(--rose-500);
    background: var(--rose-100);
    box-shadow: inset 0 0 0 1px rgba(184, 93, 108, .08);
}

.choice-card input {
    width: 18px;
    height: 18px;
    margin-top: .2rem;
}

.choice-card span {
    display: grid;
}

.choice-card small {
    color: var(--ink-500);
}

.agreement-panel {
    display: grid;
    gap: 1rem;
    padding: 1.15rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--paper-2);
}

.agreement-panel-heading {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding-bottom: .9rem;
    border-bottom: 1px solid var(--border);
}

.agreement-panel-heading > span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--rose-100);
    color: var(--rose-700);
    font-weight: 900;
}

.agreement-panel-heading h2 {
    margin: 0;
    font-family: var(--sans);
    font-size: 1rem;
    letter-spacing: 0;
}

.agreement-panel-heading p {
    margin: .15rem 0 0;
    color: var(--ink-500);
    font-size: .8rem;
}

.check-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .75rem;
    align-items: start;
    color: var(--ink-700);
}

.check-row input {
    width: 18px;
    height: 18px;
    margin-top: .22rem;
}

.check-row a,
.inline-legal-button {
    color: var(--rose-700);
    font-weight: 800;
}

.inline-legal-button {
    border: 0;
    padding: 0;
    background: none;
    text-decoration: underline;
}

.form-reassurance {
    margin: -.45rem 0 0;
    color: var(--ink-500);
    font-size: .82rem;
    text-align: center;
}

.form-errors {
    margin-bottom: 1.4rem;
    padding: 1rem 1.2rem;
    border: 1px solid #e3b9b9;
    border-radius: var(--radius-sm);
    background: #fff0f0;
    color: #742b2b;
}

.form-errors ul {
    margin-bottom: 0;
}

.honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.legal-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: none;
    place-items: center;
    padding: 1rem;
}

.legal-modal.is-open {
    display: grid;
}

.legal-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(28, 18, 21, .76);
    backdrop-filter: blur(5px);
}

.legal-modal-panel {
    position: relative;
    z-index: 1;
    width: min(100%, 760px);
    max-height: min(88vh, 900px);
    padding: clamp(1.5rem, 4vw, 2.8rem);
    overflow-y: auto;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--radius-lg);
    background: var(--paper);
    box-shadow: var(--shadow-deep);
}

.legal-modal-panel h2 {
    max-width: 650px;
    margin-bottom: 1.2rem;
    padding-right: 2rem;
    font-size: clamp(2rem, 4vw, 3rem);
}

.legal-modal-copy p {
    color: var(--ink-700);
}

.legal-modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: var(--white);
    color: var(--ink-950);
    font-size: 1.55rem;
    line-height: 1;
}

.legal-modal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.5rem;
}

.reading-page {
    padding: 3.5rem 0 6rem;
    background: var(--paper-2);
}

.reading-shell {
    max-width: 920px;
}

.back-link {
    display: inline-block;
    margin-bottom: 1.4rem;
    color: var(--ink-500);
    font-weight: 750;
    text-decoration: none;
}

.full-letter {
    position: relative;
    padding: clamp(2.2rem, 6vw, 5rem);
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 10px 28px 12px 24px;
    background:
        repeating-linear-gradient(to bottom, transparent 0, transparent 37px, rgba(115, 82, 76, .05) 38px),
        #fffaf1;
    box-shadow: var(--shadow-card);
}

.full-letter::after {
    content: "";
    position: absolute;
    right: -45px;
    bottom: -45px;
    width: 150px;
    height: 150px;
    border: 1px solid rgba(135, 56, 71, .16);
    border-radius: 50%;
    box-shadow: inset 0 0 0 12px rgba(135, 56, 71, .03);
}

.full-letter-tape {
    position: absolute;
    top: -8px;
    left: 50%;
    width: 95px;
    height: 30px;
    transform: translateX(-50%) rotate(-1deg);
    background: rgba(222, 198, 163, .72);
}

.full-letter-header {
    position: relative;
    z-index: 1;
}

.full-letter-header h1 {
    max-width: 760px;
    margin: .9rem 0;
    font-size: clamp(2.7rem, 6vw, 5rem);
}

.full-letter-to {
    margin: 1.4rem 0 .2rem;
    color: var(--rose-700);
    font-family: var(--serif);
    font-size: 1.2rem;
    font-style: italic;
}

.full-letter-body {
    position: relative;
    z-index: 1;
    margin: 3rem 0;
    color: #3a3032;
    font-family: var(--serif);
    font-size: clamp(1.15rem, 2vw, 1.34rem);
    line-height: 1.9;
}

.full-letter-footer {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1.4rem;
    border-top: 1px dashed rgba(92, 77, 80, .3);
    color: var(--ink-500);
}

.letter-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 1rem 0 3rem;
}

.report-form {
    display: grid;
    gap: 1rem;
    margin-bottom: 3rem;
    padding: 1.5rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--white);
}

.related-letters {
    padding-top: 2rem;
}

.auth-page,
.confirmation-page {
    display: grid;
    place-items: center;
    min-height: 70vh;
    padding: 4rem 1rem;
    background: var(--paper-2);
}

.auth-card {
    width: min(100%, 620px);
}

.auth-card-small {
    width: min(100%, 520px);
}

.auth-card h1 {
    font-size: clamp(2.6rem, 5vw, 4rem);
}

.newsletter-check {
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--paper-2);
}

.auth-switch {
    margin: 1.5rem 0 0;
    text-align: center;
}

.confirmation-card {
    width: min(100%, 760px);
    padding: clamp(2rem, 6vw, 5rem);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--white);
    box-shadow: var(--shadow-card);
    text-align: center;
}

.confirmation-mark {
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    margin: 0 auto 1.5rem;
    border-radius: 50%;
    background: #e7f5ed;
    color: var(--green-700);
    font-size: 1.7rem;
    font-weight: 900;
}

.join-after-submit {
    display: grid;
    justify-items: center;
    gap: 1rem;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid var(--border);
}

.dashboard-page,
.admin-page {
    min-height: 65vh;
    padding: 4rem 0 6rem;
    background: var(--paper-2);
}

.dashboard-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2.5rem;
}

.dashboard-header h1 {
    margin-bottom: .4rem;
    font-size: clamp(2.8rem, 5vw, 4.5rem);
}

.dashboard-header p {
    margin-bottom: 0;
    color: var(--ink-700);
}


.unsently-dashboard-promo {
    overflow: hidden;
    margin: 0 0 3rem;
    border: 1px solid rgba(112, 31, 48, .16);
    border-radius: clamp(1.25rem, 2vw, 2rem);
    background: linear-gradient(135deg, #fffdf9 0%, #fbf5f7 100%);
    box-shadow: 0 22px 55px rgba(65, 40, 49, .12);
}

.unsently-dashboard-promo-image {
    display: block;
    overflow: hidden;
    background: #f8f0f4;
}

.unsently-dashboard-promo-image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1731 / 909;
    object-fit: cover;
    transition: transform .35s ease;
}

.unsently-dashboard-promo-image:hover img {
    transform: scale(1.012);
}

.unsently-dashboard-promo-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2rem;
    align-items: center;
    padding: clamp(1.4rem, 3vw, 2.25rem);
}

.unsently-dashboard-promo-content h2 {
    max-width: 760px;
    margin: .45rem 0 .65rem;
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.02;
}

.unsently-dashboard-promo-content p {
    max-width: 780px;
    margin: 0;
    color: var(--ink-700);
    font-size: 1.02rem;
    line-height: 1.7;
}

.unsently-dashboard-promo-actions {
    display: grid;
    justify-items: center;
    gap: .65rem;
    min-width: 220px;
}

.unsently-dashboard-promo-actions .button {
    min-width: 210px;
    box-shadow: 0 14px 30px rgba(112, 31, 48, .2);
}

.unsently-dashboard-promo-actions span {
    color: var(--ink-500);
    font-size: .78rem;
    text-align: center;
}

.dashboard-list {
    display: grid;
    gap: 1rem;
}

.dashboard-letter {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2rem;
    padding: 1.4rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--white);
    box-shadow: var(--shadow-soft);
}

.dashboard-letter h2 {
    margin: .6rem 0;
    font-size: 1.6rem;
}

.dashboard-letter p {
    margin-bottom: 0;
    color: var(--ink-700);
}

.dashboard-letter-side {
    display: grid;
    align-content: start;
    justify-items: end;
    gap: .5rem;
    color: var(--ink-500);
    font-size: .84rem;
}

.status {
    padding: .25rem .55rem;
    border-radius: 999px;
}

.status-pending {
    background: #fff4d6;
    color: #745411;
}

.status-published {
    background: #e7f5ed;
    color: #245943;
}

.status-rejected {
    background: #fff0f0;
    color: #742b2b;
}

.admin-section {
    margin-top: 3rem;
}

.admin-section > h2 {
    font-size: 2.2rem;
}

.moderation-card,
.report-card {
    margin-bottom: 1rem;
    padding: 1.4rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--white);
    box-shadow: var(--shadow-soft);
}

.moderation-card header,
.moderation-card footer,
.report-card {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.moderation-card h3 {
    margin: .35rem 0 0;
    font-size: 1.7rem;
}

.moderation-body {
    max-height: 330px;
    margin: 1.2rem 0;
    padding: 1rem;
    overflow-y: auto;
    border-radius: var(--radius-sm);
    background: var(--paper-2);
    font-family: var(--serif);
    line-height: 1.75;
}

.moderation-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .6rem;
}

.moderation-actions form {
    display: flex;
    gap: .5rem;
}

.legal-page {
    padding: 4rem 0 6rem;
    background:
        linear-gradient(to right, rgba(244,236,227,.66), transparent 28%),
        var(--paper-2);
}

.legal-grid {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    align-items: start;
    gap: clamp(2rem, 5vw, 5rem);
}

.legal-side-nav {
    position: sticky;
    top: 2rem;
    display: grid;
    gap: .35rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: rgba(255,255,255,.78);
    box-shadow: var(--shadow-soft);
}

.legal-side-nav > span {
    margin-bottom: .4rem;
    color: var(--ink-300);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.legal-side-nav a {
    padding: .68rem .75rem;
    border-radius: 9px;
    color: var(--ink-700);
    font-size: .9rem;
    font-weight: 750;
    text-decoration: none;
}

.legal-side-nav a:hover,
.legal-side-nav a.is-active {
    background: var(--rose-100);
    color: var(--rose-700);
}

.legal-main {
    min-width: 0;
}

.legal-header {
    max-width: 820px;
    margin-bottom: 2rem;
}

.legal-header h1 {
    max-width: 760px;
    margin-bottom: .75rem;
    font-size: clamp(2.55rem, 5vw, 4.4rem);
}

.legal-header > p {
    max-width: 680px;
    margin-bottom: .5rem;
    color: var(--ink-700);
    font-size: 1.05rem;
}

.legal-updated {
    color: var(--ink-300);
    font-size: .82rem;
}

.legal-document {
    max-width: 860px;
    padding: clamp(1.6rem, 4vw, 3.2rem);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(255,255,255,.9);
    box-shadow: var(--shadow-card);
}

.legal-document h2 {
    margin: 2.4rem 0 .8rem;
    padding-top: .2rem;
    color: var(--ink-850);
    font-family: var(--sans);
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    letter-spacing: -.018em;
    line-height: 1.24;
}

.legal-document h2:first-of-type {
    margin-top: 1.7rem;
}

.legal-document p,
.legal-document li {
    color: var(--ink-700);
    font-size: .99rem;
    line-height: 1.75;
}

.legal-document ul {
    padding-left: 1.25rem;
}

.legal-document li + li {
    margin-top: .45rem;
}

.legal-document a {
    color: var(--rose-700);
    font-weight: 750;
}

.legal-callout {
    margin-bottom: 2rem;
    padding: 1.15rem 1.25rem;
    border: 1px solid #ead4d8;
    border-radius: var(--radius-sm);
    background: var(--rose-100);
}

.legal-callout strong {
    display: block;
    margin-bottom: .25rem;
    color: var(--rose-800);
}

.legal-callout p {
    margin-bottom: 0;
}

.legal-callout-strong {
    border-left: 5px solid var(--rose-700);
}

.site-footer {
    padding: 4rem 0 1.5rem;
    background: #1d1719;
    color: #f5edef;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.05fr .55fr .78fr .78fr 1.15fr;
    gap: 2.5rem;
}

.brand-footer {
    margin-bottom: 1rem;
    padding: .5rem .65rem;
    border-radius: var(--radius-md);
    background: #fffdf9;
}

.site-logo-footer {
    width: min(100%, 330px);
    height: auto;
}

.footer-grid section {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.footer-grid h2 {
    font-family: var(--sans);
    font-size: .74rem;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.footer-grid p {
    color: #bfb3b5;
}

.footer-grid a:not(.brand):not(.footer-cta) {
    margin-bottom: .45rem;
    color: #d9cfd1;
    text-decoration: none;
}

.footer-cta {
    color: #e694a4;
    font-weight: 850;
    text-decoration: none;
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 3rem;
    padding-top: 1.2rem;
    border-top: 1px solid #3d3134;
    color: #9e9093;
    font-size: .8rem;
}

@media (max-width: 1020px) {
    .hero-grid,
    .write-grid,
    .wall-hero-inner {
        grid-template-columns: 1fr;
    }

    .wall-hero-action {
        justify-items: start;
    }

    .write-sidebar {
        position: static;
    }

    .hero-art {
        min-height: 480px;
    }

    .category-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .letters-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .legal-grid {
        grid-template-columns: 1fr;
    }

    .legal-side-nav {
        position: static;
        display: flex;
        gap: .4rem;
        overflow-x: auto;
    }

    .legal-side-nav > span {
        display: none;
    }

    .legal-side-nav a {
        flex: 0 0 auto;
    }
}

@media (max-width: 760px) {
    .nav-toggle {
        display: block;
    }

    .primary-nav {
        position: absolute;
        top: 70px;
        left: 1rem;
        right: 1rem;
        display: none;
        align-items: stretch;
        padding: 1rem;
        border: 1px solid var(--border);
        border-radius: var(--radius-md);
        background: var(--white);
        box-shadow: var(--shadow-card);
    }

    .primary-nav.is-open {
        display: grid;
    }

    .primary-nav form,
    .nav-link-button {
        width: 100%;
        text-align: left;
    }

    .primary-nav > .header-join-button {
        width: 100%;
        min-height: 48px;
        margin-top: .25rem;
    }

    .hero {
        padding-top: 4rem;
    }

    .wall-hero {
        padding: 2.6rem 0 3rem;
    }

    .wall-hero h1 {
        font-size: clamp(2.55rem, 12vw, 3.7rem);
    }

    .wall-category-filter {
        padding: .7rem;
    }

    .filter-strip a,
    .filter-more-button {
        min-height: 40px;
        padding: .58rem .8rem;
        font-size: .8rem;
    }

    .hero-art {
        min-height: 430px;
    }

    .sample-note {
        width: 220px;
        min-height: 150px;
        padding: 1.15rem;
    }

    .sample-note p {
        font-size: 1rem;
    }

    .category-grid,
    .letters-grid {
        grid-template-columns: 1fr;
    }

    .section-heading-split,
    .gateway-panel,
    .dashboard-header,
    .moderation-card header,
    .moderation-card footer,
    .report-card {
        align-items: flex-start;
        flex-direction: column;
    }

    .gateway-panel {
        display: flex;
    }

    .two-column-fields {
        grid-template-columns: 1fr;
    }

    .full-letter-footer,
    .letter-actions,
    .dashboard-letter,
    .footer-bottom {
        display: grid;
        grid-template-columns: 1fr;
    }

    .dashboard-letter-side {
        justify-items: start;
    }

    .unsently-dashboard-promo-content {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .unsently-dashboard-promo-actions {
        justify-items: start;
        min-width: 0;
    }

    .unsently-dashboard-promo-actions .button {
        width: 100%;
        min-width: 0;
    }

    .unsently-dashboard-promo-actions span {
        text-align: left;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }

    .moderation-actions,
    .moderation-actions form {
        justify-content: flex-start;
    }

    .legal-modal-actions .button {
        width: 100%;
    }
}

@media (max-width: 470px) {
    .shell {
        width: min(calc(100% - 1.2rem), var(--shell));
    }

    .site-logo-header {
        width: 235px;
        max-height: 52px;
    }

    .hero-art {
        min-height: 450px;
    }

    .sample-note-one {
        left: 1%;
    }

    .sample-note-two {
        top: 39%;
    }

    .sample-note-three {
        left: 7%;
    }

    .button-row .button {
        width: 100%;
    }

    .form-card,
    .auth-card,
    .legal-document {
        border-radius: var(--radius-md);
    }

    .letter-card-foot {
        align-items: start;
        flex-direction: column;
    }
}


/* Submission workspace, custom sharing, reports, and release effects */

.submission-result-page {
    min-height: 75vh;
    padding: 4rem 0 6rem;
    background: var(--paper-2);
}

.submission-result-header {
    max-width: 800px;
    margin-bottom: 2.5rem;
}

.submission-result-header h1 {
    margin: .75rem 0;
    font-size: clamp(2.8rem, 5vw, 4.8rem);
}

.submission-result-header p {
    color: var(--ink-700);
    font-size: 1.06rem;
}

.submission-status {
    display: inline-flex;
    padding: .42rem .75rem;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.submission-status-live {
    background: #e6f5ec;
    color: #2e684f;
}

.submission-status-review {
    background: #fff2d5;
    color: #735310;
}

.submission-status-private {
    background: #eee8f7;
    color: #5f487a;
}

.submission-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    align-items: start;
    gap: 2rem;
}

.share-letter-card {
    position: relative;
    min-height: 760px;
    padding: clamp(2rem, 5vw, 4rem);
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 12px 34px 14px 28px;
    background:
        repeating-linear-gradient(
            to bottom,
            transparent 0,
            transparent 42px,
            rgba(115, 82, 76, .052) 43px
        ),
        #fffaf1;
    box-shadow: var(--shadow-deep);
    transform-origin: center;
    transition:
        opacity .5s ease,
        transform .5s ease,
        filter .5s ease;
}

.share-letter-card::before {
    content: "";
    position: absolute;
    top: -8px;
    left: 50%;
    width: 110px;
    height: 32px;
    transform: translateX(-50%) rotate(-1deg);
    background: rgba(222, 198, 163, .75);
}

.share-letter-card::after {
    content: "";
    position: absolute;
    right: -50px;
    bottom: -50px;
    width: 180px;
    height: 180px;
    border: 1px solid rgba(135, 56, 71, .17);
    border-radius: 50%;
    box-shadow: inset 0 0 0 14px rgba(135, 56, 71, .03);
}

.share-letter-brand {
    margin-bottom: 4rem;
    color: var(--rose-700);
    font-size: .8rem;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.share-letter-to {
    margin-bottom: .5rem;
    color: var(--rose-700);
    font-family: var(--serif);
    font-size: 1.2rem;
    font-style: italic;
}

.share-letter-card h2 {
    max-width: 760px;
    margin-bottom: 2rem;
    font-size: clamp(2.6rem, 5vw, 4.8rem);
}

.share-letter-excerpt {
    max-width: 760px;
    color: var(--ink-700);
    font-family: var(--serif);
    font-size: clamp(1.15rem, 2vw, 1.4rem);
    line-height: 1.85;
}

.share-letter-card footer {
    position: absolute;
    right: clamp(2rem, 5vw, 4rem);
    bottom: clamp(2rem, 5vw, 4rem);
    left: clamp(2rem, 5vw, 4rem);
    z-index: 4;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-top: 1.3rem;
    border-top: 1px dashed rgba(92, 77, 80, .3);
    color: var(--ink-500);
    font-family: var(--serif);
    font-style: italic;
}

.submission-actions-panel {
    display: grid;
    gap: 1rem;
}

.submission-actions-panel > section,
.withdraw-panel {
    padding: 1.35rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: rgba(255,255,255,.9);
    box-shadow: var(--shadow-soft);
}

.submission-actions-panel h2 {
    margin-bottom: .75rem;
    font-size: 2rem;
}

.submission-action-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .7rem;
}

.action-tile {
    display: grid;
    align-content: start;
    min-height: 124px;
    padding: .95rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--paper);
    color: var(--ink-850);
    text-align: left;
    text-decoration: none;
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.action-tile:hover {
    transform: translateY(-3px);
    border-color: var(--rose-500);
    box-shadow: var(--shadow-soft);
}

.action-tile > span {
    margin-bottom: .5rem;
    color: var(--rose-700);
    font-size: 1.35rem;
    font-weight: 900;
}

.action-tile strong {
    font-size: .92rem;
}

.action-tile small {
    margin-top: .25rem;
    color: var(--ink-500);
    line-height: 1.35;
}

.release-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .7rem;
}

.release-button {
    display: grid;
    justify-items: center;
    gap: .35rem;
    min-height: 90px;
    padding: .8rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--paper);
    color: var(--ink-850);
    font-weight: 850;
}

.release-button span {
    font-size: 1.45rem;
}

.release-burn:hover {
    border-color: #d77a48;
    background: #fff2e8;
}

.release-tear:hover {
    border-color: #8791a3;
    background: #f1f4f8;
}

.release-note,
.box-action p,
.withdraw-panel p {
    color: var(--ink-500);
    font-size: .88rem;
}

.result-newsletter {
    display: grid;
    gap: .15rem;
    margin-top: 1rem;
    color: var(--ink-500);
}

.withdraw-panel summary {
    color: var(--red-700);
    font-weight: 850;
    cursor: pointer;
}

.release-stage {
    position: sticky;
    top: 1.5rem;
    display: grid;
}

.release-stage > * {
    grid-area: 1 / 1;
}

.release-message {
    z-index: 12;
    display: grid;
    place-items: center;
    min-height: 760px;
    padding: clamp(2rem, 5vw, 4rem);
    border: 1px solid var(--border);
    border-radius: 12px 34px 14px 28px;
    background:
        radial-gradient(circle at 50% 35%, rgba(184, 93, 108, .08), transparent 34%),
        #fffaf1;
    box-shadow: var(--shadow-deep);
    text-align: center;
}

.release-message[hidden] {
    display: none;
}

.release-message > div {
    max-width: 650px;
}

.release-message-icon {
    display: inline-grid;
    place-items: center;
    width: 58px;
    height: 58px;
    margin-bottom: 1rem;
    border-radius: 50%;
    background: var(--rose-100);
    color: var(--rose-700);
    font-size: 1.45rem;
}

.release-message h2 {
    margin-bottom: .75rem;
    font-size: clamp(2.4rem, 5vw, 4rem);
}

.release-message p {
    margin-bottom: 1.4rem;
    color: var(--ink-500);
}

.owner-tools-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    margin: 0 0 3rem;
    padding: 1.4rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--white);
    box-shadow: var(--shadow-soft);
}

.letter-action-group {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
}

/* Generic blurred modal system */

.app-modal[hidden] {
    display: none;
}

.app-modal {
    position: fixed;
    inset: 0;
    z-index: 2500;
    display: none;
    place-items: center;
    padding: 1rem;
}

.app-modal.is-open {
    display: grid;
}

.app-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(28, 18, 21, .68);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.app-modal-panel {
    position: relative;
    z-index: 1;
    width: min(100%, 760px);
    max-height: 90vh;
    padding: clamp(1.4rem, 4vw, 2.6rem);
    overflow-y: auto;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: var(--radius-lg);
    background: rgba(255, 253, 250, .97);
    box-shadow: 0 35px 100px rgba(29, 18, 22, .35);
}

.app-modal-panel h2 {
    margin-bottom: .8rem;
    font-size: clamp(2rem, 4vw, 3rem);
}

.app-modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--border);
    border-radius: 50%;
    background: var(--white);
    color: var(--ink-950);
    font-size: 1.55rem;
    line-height: 1;
}

.share-modal-intro {
    max-width: 650px;
    color: var(--ink-700);
}

.share-preview-mini {
    margin: 1.4rem 0;
    padding: 1.15rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background:
        repeating-linear-gradient(
            to bottom,
            transparent 0,
            transparent 31px,
            rgba(115, 82, 76, .045) 32px
        ),
        #fffaf1;
}

.share-preview-mini strong {
    display: block;
    margin-bottom: .5rem;
    font-family: var(--serif);
    font-size: 1.35rem;
}

.share-preview-mini p {
    margin-bottom: .65rem;
    color: var(--ink-700);
    font-family: var(--serif);
}

.share-preview-mini span {
    color: var(--rose-700);
    font-size: .75rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.custom-share-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .75rem;
}

.custom-share-button {
    display: grid;
    justify-items: center;
    min-height: 132px;
    padding: 1rem .7rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--white);
    color: var(--ink-850);
    text-align: center;
    text-decoration: none;
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.custom-share-button:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-soft);
}

.custom-share-button > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin-bottom: .55rem;
    border-radius: 50%;
    color: var(--white);
    font-size: 1.25rem;
    font-weight: 900;
}

.custom-share-button strong {
    font-size: .92rem;
}

.custom-share-button small {
    margin-top: .2rem;
    color: var(--ink-500);
    line-height: 1.25;
}

.share-x > span {
    background: #111;
}

.share-facebook > span {
    background: #1877f2;
}

.share-pinterest > span {
    background: #bd081c;
}

.share-instagram > span {
    background: linear-gradient(135deg, #833ab4, #fd1d1d, #fcb045);
}

.share-modal-footer {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: 1.2rem;
}

.report-modal-panel {
    width: min(100%, 620px);
}

.report-form-modal {
    display: grid;
    gap: 1rem;
    margin-top: 1.2rem;
}

/* Fire explosion */

.fire-effect-layer {
    position: absolute;
    inset: -15%;
    z-index: 8;
    pointer-events: none;
    opacity: 0;
    background:
        radial-gradient(circle at 50% 55%, rgba(255,255,255,.98) 0 2%, transparent 8%),
        radial-gradient(circle at 45% 55%, #ffe57a 0 8%, transparent 22%),
        radial-gradient(circle at 58% 55%, #ff9f33 0 11%, transparent 28%),
        radial-gradient(circle at 50% 50%, #ef4a24 0 17%, transparent 39%);
    filter: blur(2px);
    transform: scale(.1);
}

.share-letter-card.is-burning .fire-effect-layer {
    animation: fire-explosion var(--burn-duration, 1900ms) ease-out forwards;
}

.share-letter-card.is-burning {
    animation: letter-burn var(--burn-duration, 1900ms) ease-in forwards;
}

@keyframes fire-explosion {
    0% {
        opacity: 0;
        transform: scale(.08);
        filter: blur(2px);
    }
    12% {
        opacity: 1;
        transform: scale(.55);
    }
    36% {
        opacity: 1;
        transform: scale(1.2);
        filter: blur(5px);
    }
    64% {
        opacity: .92;
        transform: scale(1.65);
        filter: blur(12px);
    }
    100% {
        opacity: 0;
        transform: scale(2.3);
        filter: blur(26px);
    }
}

@keyframes letter-burn {
    0% {
        opacity: 1;
        filter: none;
        transform: scale(1);
    }
    18% {
        filter: sepia(.25) saturate(1.35);
        box-shadow: 0 0 65px rgba(255, 121, 35, .7);
    }
    48% {
        filter: sepia(.8) saturate(1.8) contrast(1.2);
        transform: scale(.98) rotate(-.5deg);
        box-shadow: 0 0 120px rgba(241, 72, 27, .88);
    }
    76% {
        filter: brightness(.45) sepia(1) contrast(1.7);
        transform: scale(.86) rotate(1.4deg);
    }
    100% {
        opacity: 0;
        filter: brightness(.12) blur(8px);
        transform: scale(.68) translateY(80px) rotate(-2deg);
    }
}

/* Tear into separate pieces */

.tear-pieces {
    position: absolute;
    inset: 0;
    z-index: 9;
    display: none;
    pointer-events: none;
}

.share-letter-card.is-torn .tear-pieces {
    display: block;
}

.tear-piece {
    position: absolute;
    width: 25%;
    height: 25%;
    border: 1px solid rgba(177, 151, 130, .55);
    background:
        repeating-linear-gradient(
            to bottom,
            transparent 0,
            transparent 19px,
            rgba(115, 82, 76, .06) 20px
        ),
        #fffaf1;
    box-shadow: 0 15px 30px rgba(35, 25, 28, .18);
}

.tear-piece-1 { top: 0; left: 0; }
.tear-piece-2 { top: 0; left: 25%; }
.tear-piece-3 { top: 0; left: 50%; }
.tear-piece-4 { top: 0; left: 75%; }
.tear-piece-5 { top: 25%; left: 0; }
.tear-piece-6 { top: 25%; left: 25%; }
.tear-piece-7 { top: 25%; left: 50%; }
.tear-piece-8 { top: 25%; left: 75%; }
.tear-piece-9 { top: 50%; left: 0; }
.tear-piece-10 { top: 50%; left: 25%; }
.tear-piece-11 { top: 50%; left: 50%; }
.tear-piece-12 { top: 50%; left: 75%; }
.tear-piece-13 { top: 75%; left: 0; }
.tear-piece-14 { top: 75%; left: 25%; }
.tear-piece-15 { top: 75%; left: 50%; }
.tear-piece-16 { top: 75%; left: 75%; }

.share-letter-card.is-torn > :not(.tear-pieces) {
    animation: hide-original-letter calc(var(--tear-duration, 1200ms) * .18) linear forwards;
}

.share-letter-card.is-torn .tear-piece-1 { animation: scatter-1 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-2 { animation: scatter-2 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-3 { animation: scatter-3 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-4 { animation: scatter-4 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-5 { animation: scatter-5 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-6 { animation: scatter-6 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-7 { animation: scatter-7 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-8 { animation: scatter-8 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-9 { animation: scatter-9 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-10 { animation: scatter-10 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-11 { animation: scatter-11 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-12 { animation: scatter-12 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-13 { animation: scatter-13 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-14 { animation: scatter-14 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-15 { animation: scatter-15 var(--tear-duration, 1200ms) ease-in forwards; }
.share-letter-card.is-torn .tear-piece-16 { animation: scatter-16 var(--tear-duration, 1200ms) ease-in forwards; }

@keyframes hide-original-letter {
    to { opacity: 0; }
}

@keyframes scatter-1 { to { opacity: 0; transform: translate(-170px,-140px) rotate(-38deg); } }
@keyframes scatter-2 { to { opacity: 0; transform: translate(-90px,-210px) rotate(27deg); } }
@keyframes scatter-3 { to { opacity: 0; transform: translate(80px,-220px) rotate(-25deg); } }
@keyframes scatter-4 { to { opacity: 0; transform: translate(190px,-130px) rotate(42deg); } }
@keyframes scatter-5 { to { opacity: 0; transform: translate(-230px,-30px) rotate(31deg); } }
@keyframes scatter-6 { to { opacity: 0; transform: translate(-110px,20px) rotate(-47deg); } }
@keyframes scatter-7 { to { opacity: 0; transform: translate(115px,-10px) rotate(38deg); } }
@keyframes scatter-8 { to { opacity: 0; transform: translate(240px,20px) rotate(-30deg); } }
@keyframes scatter-9 { to { opacity: 0; transform: translate(-240px,100px) rotate(-40deg); } }
@keyframes scatter-10 { to { opacity: 0; transform: translate(-105px,150px) rotate(45deg); } }
@keyframes scatter-11 { to { opacity: 0; transform: translate(120px,135px) rotate(-35deg); } }
@keyframes scatter-12 { to { opacity: 0; transform: translate(245px,100px) rotate(40deg); } }
@keyframes scatter-13 { to { opacity: 0; transform: translate(-180px,270px) rotate(48deg); } }
@keyframes scatter-14 { to { opacity: 0; transform: translate(-70px,300px) rotate(-28deg); } }
@keyframes scatter-15 { to { opacity: 0; transform: translate(80px,310px) rotate(35deg); } }
@keyframes scatter-16 { to { opacity: 0; transform: translate(190px,260px) rotate(-45deg); } }

.share-letter-card.is-released {
    opacity: 0;
    pointer-events: none;
}

/* Admin effect controls */

.admin-settings-shell {
    max-width: 900px;
}

.admin-settings-card {
    display: grid;
    gap: 1.4rem;
    padding: clamp(1.4rem, 4vw, 2.4rem);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--white);
    box-shadow: var(--shadow-soft);
}

.effect-setting-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: center;
    padding-bottom: 1.3rem;
    border-bottom: 1px solid var(--border);
}

.effect-setting-row label {
    font-weight: 900;
}

.effect-setting-row p {
    margin: .35rem 0 0;
    color: var(--ink-500);
}

.range-control {
    display: grid;
    gap: .65rem;
}

.range-control input {
    width: 100%;
    accent-color: var(--rose-700);
}

.range-control output {
    color: var(--rose-700);
    font-weight: 900;
}

.admin-header-actions {
    display: flex;
    align-items: center;
    gap: .8rem;
}

.admin-stat {
    display: grid;
    min-width: 180px;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--white);
    box-shadow: var(--shadow-soft);
}

.moderation-badges,
.safety-flags {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-bottom: .65rem;
}

.risk-badge,
.report-badge,
.safety-flags span {
    padding: .28rem .55rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 850;
}

.risk-badge {
    background: #fff2d5;
    color: #735310;
}

.report-badge {
    background: #fff0f0;
    color: #742b2b;
}

.safety-flags span {
    background: #f0edf6;
    color: #5e4d76;
}

.status-pending_review,
.status-temporarily_hidden {
    background: #fff0f0;
    color: #742b2b;
}

.status-published_automatic,
.status-published_reviewed {
    background: #e7f5ed;
    color: #245943;
}

.status-private,
.status-withdrawn {
    background: #eee8f7;
    color: #5f487a;
}

@media (prefers-reduced-motion: reduce) {
    .share-letter-card.is-burning,
    .share-letter-card.is-burning .fire-effect-layer,
    .share-letter-card.is-torn .tear-piece {
        animation-duration: 1ms;
    }
}

@media (max-width: 980px) {
    .submission-workspace {
        grid-template-columns: 1fr;
    }

    .release-stage {
        position: relative;
        top: auto;
    }

    .share-letter-card,
    .release-message {
        min-height: 680px;
    }

    .custom-share-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 680px) {
    .submission-action-grid,
    .release-buttons,
    .effect-setting-row {
        grid-template-columns: 1fr;
    }

    .share-letter-card,
    .release-message {
        min-height: 620px;
    }

    .share-letter-card footer,
    .owner-tools-card,
    .admin-header-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .custom-share-grid {
        grid-template-columns: 1fr;
    }

    .share-modal-footer .button {
        width: 100%;
    }
}


/* Temporarily hidden letter review page */

.review-status-page {
    display: grid;
    min-height: 68vh;
    place-items: center;
    padding: clamp(4rem, 8vw, 7rem) 0;
    background:
        radial-gradient(circle at 50% 15%, rgba(184, 93, 108, .08), transparent 30%),
        var(--paper-2);
}

.review-status-shell {
    max-width: 820px;
}

.review-status-card {
    padding: clamp(2rem, 6vw, 4.5rem);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, .94);
    box-shadow: var(--shadow-card);
    text-align: center;
}

.review-status-icon {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin: 0 auto 1.2rem;
    border-radius: 50%;
    background: #fff2d5;
    color: #735310;
    font-family: var(--serif);
    font-size: 2rem;
    font-weight: 700;
}

.review-status-card h1 {
    margin-bottom: 1rem;
    font-size: clamp(2.7rem, 5vw, 4.6rem);
}

.review-status-card > p {
    max-width: 650px;
    margin-right: auto;
    margin-left: auto;
    color: var(--ink-700);
    font-size: 1.04rem;
}

.review-status-details {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 2rem 0;
    padding: 1rem 1.1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--paper-2);
    text-align: left;
}

.review-status-details > div {
    display: grid;
    gap: .2rem;
}

.review-status-details strong {
    font-family: var(--serif);
    font-size: 1.2rem;
}

.review-status-details span {
    color: var(--ink-500);
    font-size: .82rem;
}

.review-status-details > span {
    flex: 0 0 auto;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #fff2d5;
    color: #735310;
    font-weight: 850;
}

.review-status-actions {
    justify-content: center;
}

.review-status-note {
    margin-top: 1.4rem;
    color: var(--ink-500);
    font-size: .84rem;
}

@media (max-width: 620px) {
    .review-status-details {
        align-items: flex-start;
        flex-direction: column;
    }

    .review-status-actions .button {
        width: 100%;
    }
}


/* Saved letter box */

.dashboard-section {
    margin-top: 2.5rem;
}

.dashboard-section + .dashboard-section {
    margin-top: 4rem;
    padding-top: 3rem;
    border-top: 1px solid var(--border);
}

.saved-box-section .section-heading {
    margin-bottom: 1.5rem;
}

.letter-action-group form {
    margin: 0;
}


/* Password visibility controls */

.password-field {
    position: relative;
}

.password-field input {
    width: 100%;
    padding-right: 3.25rem;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: .72rem;
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--ink-500);
    transform: translateY(-50%);
}

.password-toggle:hover,
.password-toggle:focus-visible {
    background: var(--paper-3);
    color: var(--rose-700);
}

.password-eye {
    position: absolute;
    display: block;
    width: 21px;
    height: 14px;
}

.password-eye-open::before {
    content: "";
    position: absolute;
    inset: 1px 0;
    border: 2px solid currentColor;
    border-radius: 50% 50% 48% 48% / 60% 60% 40% 40%;
    transform: rotate(0deg);
}

.password-eye-open::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    transform: translate(-50%, -50%);
}

.password-eye-closed {
    opacity: 0;
}

.password-eye-closed::before {
    content: "";
    position: absolute;
    top: 5px;
    left: 1px;
    width: 19px;
    height: 10px;
    border-top: 2px solid currentColor;
    border-radius: 50%;
}

.password-eye-closed::after {
    content: "";
    position: absolute;
    top: 6px;
    left: 0;
    width: 22px;
    height: 2px;
    background: currentColor;
    transform: rotate(-40deg);
    transform-origin: center;
}

.password-toggle.is-visible .password-eye-open {
    opacity: 0;
}

.password-toggle.is-visible .password-eye-closed {
    opacity: 1;
}


/* Letter engagement */

.letter-engagement {
    display: flex;
    align-items: center;
    gap: .9rem;
}

.engagement-stat,
.like-button {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 38px;
    padding: .45rem .7rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: rgba(255,255,255,.72);
    color: var(--ink-700);
    font-size: .82rem;
}

.like-button {
    cursor: pointer;
}

.like-button:hover,
.like-button.is-liked {
    border-color: var(--rose-500);
    background: var(--rose-100);
    color: var(--rose-700);
}

.like-heart {
    color: var(--rose-700);
    font-size: 1.2rem;
    line-height: 1;
}

.letter-card-engagement {
    display: flex;
    gap: .7rem;
    margin-top: .4rem;
    color: var(--ink-500);
    font-size: .76rem;
}

/* Site notifications */

.notification-stack {
    position: fixed;
    top: 96px;
    right: 1.25rem;
    z-index: 3000;
    width: min(430px, calc(100vw - 2rem));
}

.site-notification {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .9rem;
    align-items: start;
    padding: 1rem 1rem 1rem 1.05rem;
    border: 1px solid;
    border-radius: var(--radius-md);
    background: rgba(255,255,255,.97);
    box-shadow: var(--shadow-deep);
    backdrop-filter: blur(14px);
    animation: notification-in .28s ease-out;
}

.site-notification.is-leaving {
    animation: notification-out .22s ease-in forwards;
}

.notification-success {
    border-color: #bad7c9;
}

.notification-error {
    border-color: #e3bcbc;
}

.notification-icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    font-weight: 900;
}

.notification-success .notification-icon {
    background: #e6f5ec;
    color: #2e684f;
}

.notification-error .notification-icon {
    background: #fff0f0;
    color: #8a3434;
}

.notification-copy strong {
    display: block;
    margin-bottom: .12rem;
    color: var(--ink-950);
    font-size: .9rem;
}

.notification-copy p {
    margin: 0;
    color: var(--ink-700);
    font-size: .88rem;
    line-height: 1.45;
}

.notification-close {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--ink-500);
    font-size: 1.2rem;
}

.notification-close:hover {
    background: var(--paper-3);
    color: var(--ink-950);
}

@keyframes notification-in {
    from {
        opacity: 0;
        transform: translateY(-12px) translateX(20px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes notification-out {
    to {
        opacity: 0;
        transform: translateY(-8px) translateX(24px);
    }
}

@media (max-width: 700px) {
    .full-letter-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .notification-stack {
        top: 84px;
        right: 1rem;
        left: 1rem;
        width: auto;
    }
}


/* Anonymous publishing controls */

.identity-panel {
    display: grid;
    gap: 1rem;
    margin: 1.4rem 0;
    padding: 1.25rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--paper-2);
}

.identity-panel h2 {
    margin: 0;
    font-size: 1.65rem;
}

.anonymous-choice {
    background: var(--white);
}

[data-display-name-field] {
    margin: 0;
    transition: opacity .18s ease;
}

[data-display-name-field].is-disabled {
    opacity: .48;
}

[data-display-name-field].is-disabled input {
    cursor: not-allowed;
}


/* Moderation section guidance */

.admin-section-intro {
    margin-top: -.35rem;
    margin-bottom: 1.25rem;
    color: var(--ink-500);
    font-size: .9rem;
}


/* Wall pagination */

.wall-pagination {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;
    margin-top: 2.25rem;
}

.wall-pagination > div:last-child {
    display: flex;
    justify-content: flex-end;
}

.pagination-status {
    color: var(--ink-500);
    font-size: .86rem;
    font-weight: 750;
    text-align: center;
}

.button.is-disabled {
    opacity: .45;
    pointer-events: none;
}

@media (max-width: 640px) {
    .wall-pagination {
        grid-template-columns: 1fr 1fr;
    }

    .pagination-status {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .wall-pagination > div {
        grid-row: 2;
    }

    .wall-pagination .button {
        width: 100%;
    }
}


/* In-place Show More Letters */

.load-more-region {
    display: grid;
    justify-items: center;
    gap: .9rem;
    margin-top: 2.5rem;
}


.load-more-button {
    position: relative;
    min-width: 230px;
    overflow: hidden;
}

.load-more-button.is-loading {
    pointer-events: none;
    opacity: .84;
}

.load-more-spinner {
    display: none;
    width: 18px;
    height: 18px;
    margin-left: .65rem;
    border: 2px solid rgba(255,255,255,.42);
    border-top-color: var(--white);
    border-radius: 50%;
    animation: load-more-spin .72s linear infinite;
}

.load-more-button.is-loading .load-more-spinner {
    display: inline-block;
}

.wall-end-message {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    padding: .9rem 1.15rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--paper-2);
    color: var(--ink-700);
    box-shadow: var(--shadow-soft);
}

.wall-end-message span {
    color: var(--rose-700);
}

.letter-card-entering {
    opacity: 0;
    transform: translateY(24px);
    transition:
        opacity .38s ease var(--enter-delay, 0ms),
        transform .38s ease var(--enter-delay, 0ms);
}

.letter-card-entering.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@keyframes load-more-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .letter-card-entering,
    .letter-card-entering.is-visible {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .load-more-spinner {
        animation-duration: 1.2s;
    }
}


/* Show More stability */

.load-more-button[aria-disabled="true"] {
    pointer-events: none;
}

.load-more-button:not(.is-loading) .load-more-spinner {
    display: none;
}


/* Show More request feedback */

.load-more-button.load-more-error {
    animation: load-more-error-pulse .36s ease-in-out 2;
}

@keyframes load-more-error-pulse {
    50% {
        transform: translateX(3px);
        filter: saturate(.7);
    }
}


/* Pinterest share-image verification */

.share-preview-image-wrap {
    display: grid;
    place-items: center;
    margin: 1.35rem 0 1rem;
    padding: .8rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--paper-2);
}

.share-preview-image {
    display: block;
    width: min(100%, 240px);
    height: auto;
    border-radius: 8px;
    box-shadow: var(--shadow-soft);
}

.custom-share-button.is-checking {
    opacity: .72;
    pointer-events: none;
}


/* ============================================================
   Authority pages — single source section, v1.7.3
   ============================================================ */

.authority-breadcrumbs {
    margin-bottom: 2rem;
    color: var(--ink-500);
    font-size: .84rem;
}

.authority-breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.authority-breadcrumbs li {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
}

.authority-breadcrumbs a {
    color: var(--rose-700);
    text-decoration: none;
}

.authority-hero {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(135deg, var(--paper-2), #fffdf9 70%, #f4e9e7);
}

.authority-hero-compact {
    padding: clamp(3.25rem, 6vw, 5rem) 0;
}

.authority-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
    gap: clamp(2.5rem, 5vw, 5rem);
    align-items: center;
}

.authority-hero-copy h1,
.authority-hero-compact h1 {
    max-width: 760px;
    margin: .65rem 0 1.15rem;
    font-size: clamp(3rem, 5vw, 4.8rem);
    line-height: .98;
}

.authority-lead {
    max-width: 720px;
    color: var(--ink-700);
    font-size: clamp(1.05rem, 1.6vw, 1.22rem);
    line-height: 1.75;
}

.authority-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 1.55rem;
}

.authority-narrow,
.authority-reading-width {
    max-width: 860px;
}

/* About-page founder pair: deliberately compact, never portrait-height. */
.founder-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    width: min(100%, 520px);
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: rgba(255, 253, 249, .94);
    box-shadow: var(--shadow-deep);
}

.founder-pair-card {
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: #fffdf9;
}

.founder-pair-card img {
    display: block;
    width: 100%;
    height: 285px;
    object-fit: cover;
    object-position: center 25%;
}

.founder-pair-card figcaption {
    display: grid;
    gap: .12rem;
    padding: .85rem 1rem;
}

.founder-pair-card figcaption strong {
    font-family: var(--serif);
    font-size: 1.35rem;
}

.founder-pair-card figcaption span {
    color: var(--ink-500);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.authority-section {
    padding: clamp(3.75rem, 7vw, 6.25rem) 0;
}

.authority-section-tinted {
    background: var(--paper-2);
}

.authority-section-heading {
    max-width: 760px;
    margin-bottom: 2.25rem;
}

.authority-section h2 {
    margin: .55rem 0 1rem;
    font-size: clamp(2.2rem, 4vw, 3.8rem);
    line-height: 1.04;
}

.authority-section p {
    color: var(--ink-700);
    line-height: 1.76;
}

.authority-quote {
    margin: 2.2rem 0 0;
    padding: 1.8rem 2rem;
    border-left: 4px solid var(--rose-700);
    background: #fffdf9;
    box-shadow: var(--shadow-soft);
}

.authority-quote p {
    margin: 0;
    color: var(--ink-950);
    font-family: var(--serif);
    font-size: clamp(1.35rem, 2.7vw, 2rem);
    line-height: 1.38;
}

.authority-quote cite {
    display: block;
    margin-top: .9rem;
    color: var(--rose-700);
    font-style: normal;
    font-weight: 850;
}

.authority-value-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.authority-value-grid article {
    padding: 1.45rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: #fffdf9;
}

.authority-value-grid article > span,
.policy-number {
    color: var(--rose-700);
    font-family: var(--serif);
    font-size: 1.2rem;
    font-weight: 850;
}

.authority-value-grid h3 {
    margin: 1rem 0 .65rem;
    font-size: 1.55rem;
}

/* Founder summaries on About: fixed square images. */
.founder-story-grid {
    display: grid;
    gap: 1.25rem;
}

.founder-story {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 2rem;
    align-items: center;
    padding: 1.35rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: var(--shadow-soft);
}

.founder-story-photo {
    width: 220px;
    height: 220px;
    overflow: hidden;
    border-radius: var(--radius-md);
}

.founder-story-photo img {
    display: block;
    width: 220px;
    height: 220px;
    object-fit: cover;
    object-position: center 25%;
}

.founder-story h2 {
    margin: .3rem 0 .75rem;
    font-size: clamp(2.25rem, 4vw, 3.4rem);
}

.founder-story-copy p {
    max-width: 720px;
}

/* Founders page: compact horizontal cards, never full-height portraits. */
.authority-profile-grid {
    display: grid;
    gap: 1.4rem;
}

.authority-profile-card {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    align-items: stretch;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: var(--shadow-soft);
}

.authority-profile-photo {
    width: 280px;
    height: 280px;
    overflow: hidden;
    background: var(--paper-2);
}

.authority-profile-photo img {
    display: block;
    width: 280px;
    height: 280px;
    object-fit: cover;
    object-position: center 25%;
}

.authority-profile-copy {
    align-self: center;
    padding: clamp(1.6rem, 3vw, 2.5rem);
}

.authority-profile-copy h2 {
    margin: .25rem 0 .7rem;
    font-size: clamp(2.5rem, 4vw, 3.7rem);
}

.authority-profile-copy h3 {
    margin: 1.2rem 0 .45rem;
    font-size: 1.35rem;
}

.authority-profile-copy ul {
    color: var(--ink-700);
    line-height: 1.75;
}

.authority-trust-band {
    background: var(--rose-800);
    color: #fff;
}

.authority-trust-band h2,
.authority-trust-band p,
.authority-trust-band .eyebrow {
    color: #fff;
}

.authority-trust-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 3rem;
}

.authority-link-stack {
    display: grid;
    gap: .8rem;
}

.authority-link-stack a {
    display: grid;
    gap: .25rem;
    padding: 1.15rem 1.25rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, .07);
    color: #fff;
    text-decoration: none;
}

.authority-link-stack span {
    color: rgba(255, 255, 255, .76);
    font-size: .9rem;
}

.authority-process {
    max-width: 980px;
}

.authority-process-step {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 1.35rem;
    padding: 1.8rem 0;
    border-bottom: 1px solid var(--border);
}

.authority-process-step > span {
    color: var(--rose-700);
    font-family: var(--serif);
    font-size: 2rem;
}

.authority-process-step h2 {
    margin: 0 0 .45rem;
    font-size: 2.1rem;
}

.authority-two-column {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.5rem;
    align-items: start;
}

.authority-callout {
    padding: 1.8rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: var(--shadow-soft);
}

.authority-callout h3 {
    font-size: 1.9rem;
}

.authority-callout-warning {
    border-color: #e7c8b9;
    background: #fff8f2;
}

.authority-check-list {
    display: grid;
    gap: .8rem;
    padding: 0;
    list-style: none;
}

.authority-check-list li {
    position: relative;
    padding-left: 1.8rem;
    color: var(--ink-700);
    line-height: 1.6;
}

.authority-check-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--rose-700);
    font-weight: 900;
}

.authority-cta-card {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    align-items: center;
    padding: 1.8rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: var(--shadow-soft);
}

.authority-cta-card-dark {
    border-color: rgba(255, 255, 255, .18);
    background: transparent;
    box-shadow: none;
}

.button-light {
    background: #fff;
    color: var(--rose-800);
}

.standards-purpose-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.standards-purpose-card {
    padding: clamp(1.5rem, 3vw, 2.2rem);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: var(--shadow-soft);
}

.standards-purpose-card h2 {
    margin: .45rem 0 .8rem;
    font-size: clamp(2rem, 3.4vw, 2.9rem);
}

.moderation-standard-flow {
    max-width: 980px;
}

.moderation-standard-steps {
    display: grid;
    gap: .9rem;
}

.moderation-standard-steps article {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 1rem;
    padding: 1.25rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: #fffdf9;
}

.moderation-standard-steps article > span {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--rose-100);
    color: var(--rose-700);
    font-family: var(--serif);
    font-size: 1.25rem;
    font-weight: 850;
}

.moderation-standard-steps h3 {
    margin: 0 0 .35rem;
    font-size: 1.45rem;
}

.safety-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .8rem;
}

.safety-flow article {
    padding: 1.25rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: #fffdf9;
}

.safety-flow article > span {
    color: var(--rose-700);
    font-family: var(--serif);
    font-size: 2.1rem;
}

.safety-flow h2 {
    font-size: 1.45rem;
}

.contact-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.contact-card {
    padding: 1.8rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: var(--shadow-soft);
}

.contact-card-primary {
    background: var(--rose-800);
    color: #fff;
}

.contact-card-primary h2,
.contact-card-primary p,
.contact-card-primary a,
.contact-card-primary small {
    color: #fff;
}

.contact-card a {
    color: var(--rose-700);
    font-weight: 850;
}

.contact-card small {
    display: block;
    margin-top: .7rem;
    color: var(--ink-500);
}

.contact-icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: var(--rose-100);
    color: var(--rose-700);
    font-weight: 900;
}

.contact-card-primary .contact-icon {
    background: rgba(255, 255, 255, .15);
    color: #fff;
}

.authority-home-strip {
    padding: 2.3rem 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    background: #fffdf9;
}

.authority-home-strip-grid {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 1.8rem;
    align-items: center;
}

.authority-home-strip h2 {
    margin: .25rem 0 .5rem;
    font-size: 2.25rem;
}

.authority-home-strip p {
    max-width: 680px;
    margin: 0;
    color: var(--ink-700);
}

.authority-home-founders {
    display: flex;
}

.authority-home-founders img {
    width: 68px;
    height: 68px;
    border: 4px solid #fffdf9;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 25%;
    box-shadow: var(--shadow-soft);
}

.authority-home-founders img + img {
    margin-left: -16px;
}

@media (max-width: 1050px) {
    .authority-hero-grid,
    .authority-trust-grid,
    .authority-two-column {
        grid-template-columns: 1fr;
    }

    .founder-pair {
        width: min(100%, 600px);
    }

    .authority-value-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .safety-flow {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .authority-hero-copy h1,
    .authority-hero-compact h1 {
        font-size: clamp(2.75rem, 13vw, 4.2rem);
    }

    .founder-story,
    .authority-profile-card,
    .standards-purpose-grid,
    .contact-card-grid {
        grid-template-columns: 1fr;
    }

    .founder-story-photo,
    .founder-story-photo img,
    .authority-profile-photo,
    .authority-profile-photo img {
        width: 100%;
        height: 300px;
    }

    .authority-value-grid,
    .safety-flow {
        grid-template-columns: 1fr;
    }

    .authority-process-step {
        grid-template-columns: 50px 1fr;
    }

    .authority-cta-card,
    .authority-home-strip-grid {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 560px) {
    .founder-pair {
        grid-template-columns: 1fr 1fr;
        gap: .65rem;
        padding: .65rem;
    }

    .founder-pair-card img {
        height: 190px;
    }

    .founder-pair-card figcaption {
        padding: .65rem .75rem;
    }

    .founder-story-photo,
    .founder-story-photo img,
    .authority-profile-photo,
    .authority-profile-photo img {
        height: 260px;
    }
}


/* ============================================================
   About page v2 — tailored Unsently-style content architecture
   Unique selectors only; no duplicate authority rules.
   ============================================================ */

.about-v2-hero {
    padding: clamp(3.5rem, 7vw, 6rem) 0;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(135deg, var(--paper-2), #fffdf9 72%, #f2e7e5);
}

.about-v2-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(380px, .95fr);
    gap: clamp(2.5rem, 6vw, 5.5rem);
    align-items: center;
}

.about-v2-hero-copy h1 {
    max-width: 700px;
    margin: .6rem 0 1.2rem;
    font-size: clamp(3.4rem, 6.2vw, 6rem);
    line-height: .94;
}

.about-v2-hero-copy > p {
    max-width: 680px;
    color: var(--ink-700);
    font-size: clamp(1.08rem, 1.7vw, 1.28rem);
    line-height: 1.75;
}

.about-v2-founders-couple {
    max-width: 560px;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: calc(var(--radius-lg) + .35rem);
    background: rgba(255, 253, 249, .97);
    box-shadow: var(--shadow-deep);
}

.about-v2-founders-couple img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.about-v2-founders-couple figcaption {
    display: grid;
    gap: .15rem;
    padding: 1rem 1.15rem 1.1rem;
}

.about-v2-founders-couple strong {
    font-family: var(--serif);
    font-size: 1.7rem;
}

.about-v2-founders-couple span {
    color: var(--ink-500);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.about-v2-section {
    padding: clamp(4rem, 7vw, 6.5rem) 0;
}

.about-v2-tinted {
    background: var(--paper-2);
}

.about-v2-split {
    display: grid;
    grid-template-columns: .7fr 1.3fr;
    gap: clamp(2rem, 6vw, 5rem);
    align-items: start;
}

.about-v2-split h2,
.about-v2-reading h2,
.about-v2-heading h2,
.about-v2-contact h2,
.about-v2-final h2 {
    margin: .5rem 0 1rem;
    font-size: clamp(2.5rem, 4.8vw, 4.5rem);
    line-height: 1.02;
}

.about-v2-prose,
.about-v2-reading {
    max-width: 850px;
}

.about-v2-prose p,
.about-v2-reading p,
.about-v2-founder-details p {
    color: var(--ink-700);
    font-size: 1.05rem;
    line-height: 1.82;
}

.about-v2-quote-band {
    padding: clamp(3.5rem, 6vw, 5.5rem) 0;
    background: var(--rose-800);
}

.about-v2-quote-band blockquote {
    max-width: 980px;
    margin: 0 auto;
    text-align: center;
}

.about-v2-quote-band p {
    margin: 0;
    color: #fff;
    font-family: var(--serif);
    font-size: clamp(2rem, 4.5vw, 4rem);
    line-height: 1.15;
}

.about-v2-quote-band cite {
    display: block;
    margin-top: 1.4rem;
    color: rgba(255,255,255,.78);
    font-style: normal;
    font-weight: 850;
}

.about-v2-heading {
    max-width: 820px;
    margin-bottom: 2.2rem;
}

.about-v2-beliefs,
.about-v2-values {
    display: grid;
    gap: 1rem;
}

.about-v2-beliefs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.about-v2-values {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.about-v2-beliefs article,
.about-v2-values article {
    padding: clamp(1.4rem, 2.8vw, 2rem);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: var(--shadow-soft);
}

.about-v2-beliefs h3,
.about-v2-values h3 {
    margin: .45rem 0 .7rem;
    font-size: 1.55rem;
}

.about-v2-beliefs p,
.about-v2-values p {
    color: var(--ink-700);
    line-height: 1.7;
}

.about-v2-values article > span {
    color: var(--rose-700);
    font-family: var(--serif);
    font-size: 1.25rem;
    font-weight: 850;
}

.about-v2-founder-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.about-v2-founder-details article {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 1.5rem;
    align-items: center;
    padding: clamp(1.25rem, 2.4vw, 1.8rem);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: var(--shadow-soft);
}

.about-v2-founder-details img {
    display: block;
    width: 180px;
    height: 180px;
    border-radius: 24px;
    object-fit: cover;
    object-position: center 22%;
}

.about-v2-founder-details h3 {
    margin: .3rem 0 .7rem;
    font-size: clamp(2.2rem, 4vw, 3.4rem);
}

.about-v2-contact {
    background: var(--rose-800);
    color: #fff;
}

.about-v2-contact h2,
.about-v2-contact p,
.about-v2-contact .eyebrow {
    color: #fff;
}

.about-v2-contact-grid {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 2rem;
    align-items: center;
}

.about-v2-contact-grid p {
    max-width: 760px;
    color: rgba(255,255,255,.82);
    line-height: 1.75;
}

.about-v2-final {
    max-width: 900px;
    text-align: center;
}

.about-v2-final .button {
    margin-top: 1rem;
}

@media (max-width: 980px) {
    .about-v2-hero-grid,
    .about-v2-split,
    .about-v2-contact-grid {
        grid-template-columns: 1fr;
    }

    .about-v2-founders-couple {
        max-width: 620px;
    }

    .about-v2-beliefs,
    .about-v2-values {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .about-v2-founder-details {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .about-v2-founder-details article {
        grid-template-columns: 110px minmax(0, 1fr);
        gap: 1rem;
    }

    .about-v2-founder-details img {
        width: 110px;
        height: 110px;
        border-radius: 18px;
    }

    .about-v2-beliefs,
    .about-v2-values {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .about-v2-founder-details article {
        grid-template-columns: 1fr;
    }

    .about-v2-founder-details img {
        width: 140px;
        height: 140px;
    }
}

@media (max-width: 520px) {
    .about-v2-founders-couple figcaption {
        padding: .85rem .95rem 1rem;
    }

    .about-v2-founders-couple strong {
        font-size: 1.35rem;
    }
}

/* ============================================================
   Contact page and contact form — authoritative source, v1.7.22
   ============================================================ */

.contact-hero {
    padding: clamp(3.5rem, 7vw, 6.5rem) 0;
    border-bottom: 1px solid var(--border);
    background:
        radial-gradient(circle at 85% 15%, rgba(143, 70, 85, .09), transparent 30%),
        linear-gradient(180deg, #fffdf9 0%, var(--paper) 100%);
}

.contact-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: center;
}

.contact-hero-copy h1 {
    max-width: 760px;
    margin: .55rem 0 1rem;
    font-size: clamp(3.5rem, 7vw, 6.5rem);
    line-height: .94;
}

.contact-hero-copy > p {
    max-width: 720px;
    margin: 0;
    color: var(--ink-700);
    font-size: clamp(1.08rem, 1.7vw, 1.28rem);
    line-height: 1.75;
}

.contact-human-note {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    margin-top: 1.6rem;
    padding: .78rem 1rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: rgba(255, 253, 249, .85);
    color: var(--rose-800);
    box-shadow: var(--shadow-soft);
}

.contact-human-note span {
    color: var(--rose-600);
}

.contact-support-card {
    padding: clamp(1.5rem, 3vw, 2.2rem);
    border: 1px solid rgba(126, 55, 70, .18);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: var(--shadow-deep);
}

.contact-support-card h2 {
    margin: .45rem 0 .75rem;
    font-size: clamp(2rem, 3.5vw, 3rem);
}

.contact-support-card > p {
    color: var(--ink-700);
}

.contact-direct-email {
    display: inline-flex;
    margin: .5rem 0 1.4rem;
    color: var(--rose-700);
    font-weight: 850;
    text-decoration-thickness: 1px;
    text-underline-offset: .2em;
}

.contact-crisis-note {
    padding: 1rem 1.05rem;
    border-left: 3px solid var(--rose-500);
    background: var(--paper-2);
}

.contact-crisis-note strong {
    color: var(--ink-900);
}

.contact-crisis-note p {
    margin: .3rem 0 0;
    color: var(--ink-700);
    font-size: .92rem;
    line-height: 1.65;
}

.contact-form-section {
    padding: clamp(4rem, 8vw, 7rem) 0;
}

.contact-form-layout {
    display: grid;
    grid-template-columns: minmax(0, .78fr) minmax(520px, 1.22fr);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: start;
}

.contact-form-intro {
    position: sticky;
    top: 110px;
}

.contact-form-intro h2 {
    margin: .45rem 0 .85rem;
    font-size: clamp(2.7rem, 5vw, 4.6rem);
}

.contact-form-intro > p {
    color: var(--ink-700);
    line-height: 1.75;
}

.contact-routing-list {
    display: grid;
    gap: .8rem;
    margin-top: 1.6rem;
}

.contact-routing-list article {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: .9rem;
    padding: 1rem 0;
    border-top: 1px solid var(--border);
}

.contact-routing-list article > span {
    color: var(--rose-700);
    font-family: var(--serif);
    font-size: 1.45rem;
}

.contact-routing-list h3 {
    margin: 0 0 .25rem;
    font-size: 1.05rem;
}

.contact-routing-list p {
    margin: 0;
    color: var(--ink-600);
    font-size: .92rem;
    line-height: 1.6;
}

.contact-form-card {
    padding: clamp(1.4rem, 3vw, 2.4rem);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: var(--shadow-deep);
}

.contact-form {
    display: grid;
    gap: 1.15rem;
}

.contact-form .form-grid-two {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.contact-form .field-group {
    display: grid;
    gap: .45rem;
}

.contact-form label {
    color: var(--ink-900);
    font-weight: 800;
}

.contact-form label span {
    color: var(--rose-700);
}

.contact-form input,
.contact-form select,
.contact-form textarea {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    color: var(--ink-900);
    font: inherit;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.contact-form input,
.contact-form select {
    min-height: 50px;
    padding: .78rem .9rem;
}

.contact-form textarea {
    min-height: 220px;
    padding: .9rem;
    line-height: 1.6;
    resize: vertical;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
    outline: 0;
    border-color: var(--rose-600);
    background: #fffdfd;
    box-shadow: 0 0 0 4px rgba(143, 70, 85, .12);
}

.contact-form input[aria-invalid="true"],
.contact-form select[aria-invalid="true"],
.contact-form textarea[aria-invalid="true"] {
    border-color: #a93b45;
}

.field-error {
    margin: 0;
    color: #9d2f3e;
    font-size: .86rem;
    font-weight: 700;
}

.field-help-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    color: var(--ink-500);
}

.field-help-row small:last-child {
    flex: 0 0 auto;
}

.contact-form-alert {
    margin-bottom: 1rem;
    padding: .9rem 1rem;
    border: 1px solid rgba(157, 47, 62, .22);
    border-radius: 12px;
    background: #fff1f3;
    color: #8d2937;
    font-weight: 750;
}

.contact-submit-button {
    justify-self: start;
    min-width: 190px;
    min-height: 50px;
}

.contact-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

@media (max-width: 900px) {
    .contact-hero-grid,
    .contact-form-layout {
        grid-template-columns: 1fr;
    }

    .contact-form-intro {
        position: static;
    }
}

@media (max-width: 620px) {
    .contact-form .form-grid-two {
        grid-template-columns: 1fr;
    }

    .field-help-row {
        display: grid;
    }

    .contact-submit-button {
        width: 100%;
    }
}


/* ============================================================
   Blog engine — public and admin, v1.8.0
   ============================================================ */
.blog-hero {
    padding: var(--blog-home-hero-padding, 72px) 0;
    border-bottom: 1px solid var(--border);
    background: var(--blog-home-hero-background, #f8f3ed);
    text-align: var(--blog-home-hero-align, left);
}

.blog-hero .shell {
    width: min(calc(100% - 2rem), var(--blog-home-content-width, 1180px));
    max-width: none;
}

.blog-hero h1 {
    max-width: 900px;
    margin: .55rem 0 1rem;
    color: var(--blog-home-hero-title-color, #231b1d);
    font-family: var(--blog-home-hero-title-font, var(--serif));
    font-size: clamp(2.8rem, 7vw, var(--blog-home-hero-title-size, 78px));
    line-height: .96;
}

.blog-hero[style*="center"] h1,
.blog-hero[style*="center"] p {
    margin-inline: auto;
}

.blog-hero p {
    max-width: 760px;
    color: var(--blog-home-hero-text-color, #5b4c50);
    font-size: var(--blog-home-hero-text-size, 20px);
    line-height: 1.7;
}

.blog-hero .breadcrumbs {
    justify-content: var(--blog-home-hero-align, left);
}

.compact-blog-hero h1 {
    font-size: clamp(2.7rem, 6vw, calc(var(--blog-home-hero-title-size, 78px) * .78));
}

.blog-page-section {
    padding: var(--blog-home-section-padding, 64px) 0;
    background: var(--blog-home-page-background, #fffdf9);
}

.blog-page-section > .shell {
    width: min(calc(100% - 2rem), var(--blog-home-content-width, 1180px));
}

.blog-category-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-bottom: 2.25rem;
}

.blog-category-nav a {
    display: inline-flex;
    gap: .45rem;
    align-items: center;
    padding: .7rem 1rem;
    border: 1px solid var(--blog-category-border-color, #e2d6cf);
    border-radius: var(--blog-category-radius, 999px);
    background: var(--blog-category-background, #fffdf9);
    color: var(--blog-category-text-color, #5b4c50);
    font-size: var(--blog-category-font-size, 14px);
    font-weight: 800;
    text-decoration: none;
}

.blog-category-nav a:hover,
.blog-category-nav a.is-active {
    border-color: var(--blog-category-active-background, #7d2639);
    background: var(--blog-category-active-background, #7d2639);
    color: var(--blog-category-active-text-color, #fff);
}

.blog-category-nav span {
    opacity: .75;
    font-size: .8em;
}

.blog-grid {
    display: grid;
    grid-template-columns: repeat(var(--blog-home-columns, 3), minmax(0, 1fr));
    gap: var(--blog-home-grid-gap, 24px);
}

.blog-card {
    min-width: 0;
    overflow: hidden;
    border: var(--blog-card-border-width, 1px) solid var(--blog-card-border-color, #e2d6cf);
    border-radius: var(--blog-card-radius, 24px);
    background: var(--blog-card-background, #fffdf9);
    box-shadow: var(--blog-card-shadow, 0 12px 30px rgba(49,31,36,.08));
    transition: transform .2s ease, box-shadow .2s ease;
}

.blog-card:hover {
    transform: var(--blog-card-hover-transform, translateY(-4px));
    box-shadow: var(--blog-card-shadow, 0 12px 30px rgba(49,31,36,.08));
}

.blog-card-image {
    display: block;
    overflow: hidden;
    aspect-ratio: var(--blog-card-image-ratio, 16 / 9);
    background: var(--paper-2);
}

.blog-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.blog-card:hover .blog-card-image img {
    transform: scale(1.025);
}

.blog-card-placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 30% 20%, #f8e8ec, #f1e0d5);
}

.blog-card-placeholder span {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--blog-card-accent-color, #7d2639);
    color: #fff;
    font-family: var(--serif);
    font-size: 1.7rem;
}

.blog-card-content {
    padding: var(--blog-card-padding, 22px);
}

.blog-card-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .6rem;
    color: var(--blog-card-meta-color, #806f73);
    font-size: .8rem;
}

.blog-card-meta a {
    color: var(--blog-card-accent-color, #7d2639);
    font-weight: 850;
    text-decoration: none;
}

.blog-card h2 {
    margin: .7rem 0;
    font-family: var(--blog-card-title-font, var(--serif));
    font-size: var(--blog-card-title-size, 31px);
    line-height: 1.05;
}

.blog-card h2 a {
    color: var(--blog-card-title-color, #231b1d);
    text-decoration: none;
}

.blog-card p {
    display: -webkit-box;
    overflow: hidden;
    margin-bottom: 1rem;
    color: var(--blog-card-excerpt-color, #5b4c50);
    font-size: var(--blog-card-excerpt-size, 16px);
    line-height: 1.6;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--blog-card-excerpt-lines, 4);
}

.blog-card .text-link {
    color: var(--blog-card-accent-color, #7d2639);
}

.article-page {
    overflow: clip;
}

.article-header {
    padding: var(--blog-article-header-padding, 72px) 0 2.5rem;
    background: var(--blog-article-header-background, #f8f3ed);
    text-align: var(--blog-article-header-align, left);
}

.article-header-inner {
    width: min(calc(100% - 2rem), var(--blog-article-header-width, 900px));
    margin: auto;
}

.article-header-inner > * {
    max-width: 100%;
}

.article-category {
    color: var(--blog-link-color, #7d2639);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-decoration: none;
    text-transform: uppercase;
}

.article-header h1 {
    margin: .7rem 0 1rem;
    color: var(--blog-heading-color, #231b1d);
    font-family: var(--blog-title-font, var(--serif));
    font-size: clamp(3rem, 7vw, var(--blog-title-size, 76px));
    line-height: .95;
}

.article-deck {
    color: var(--blog-text-color, #3d3033);
    font-size: var(--blog-article-deck-size, 21px);
    line-height: 1.65;
}

.article-byline {
    display: flex;
    flex-wrap: wrap;
    justify-content: var(--blog-article-header-align, left);
    gap: .7rem 1.2rem;
    margin-top: 1.5rem;
    color: var(--blog-article-meta-color, #806f73);
    font-size: .88rem;
}

.article-featured-image {
    width: min(calc(100% - 2rem), var(--blog-featured-width, 1120px));
    margin: 0 auto clamp(2.75rem, 5vw, 4.5rem);
}

.article-featured-image img {
    display: block;
    width: 100%;
    max-height: var(--blog-featured-height, 680px);
    object-fit: cover;
    border-radius: var(--blog-featured-radius, 24px);
    box-shadow: var(--blog-featured-shadow, 0 18px 46px rgba(49,31,36,.14));
}

.article-layout {
    display: grid;
    grid-template-columns: minmax(0, var(--blog-content-width, 760px)) var(--blog-sidebar-width, 300px);
    gap: var(--blog-layout-gap, 56px);
    align-items: start;
    justify-content: center;
    width: min(calc(100% - 2rem), var(--blog-layout-width, 1180px));
    margin-inline: auto;
    padding-bottom: clamp(4rem, 8vw, 7rem);
}

.article-content {
    min-width: 0;
}

.prose-content {
    color: var(--blog-text-color, #3d3033);
    font-family: var(--blog-body-font, var(--sans));
    font-size: var(--blog-body-size, 18px);
    line-height: var(--blog-body-line-height, 1.85);
}

.prose-content h2 {
    margin: 2.2em 0 .65em;
    color: var(--blog-heading-color, #231b1d);
    font-family: var(--blog-h2-font, var(--serif));
    font-size: clamp(2rem, 4vw, var(--blog-h2-size, 48px));
    line-height: 1.05;
}

.prose-content h3 {
    margin: 1.8em 0 .55em;
    color: var(--blog-heading-color, #231b1d);
    font-family: var(--blog-h3-font, var(--serif));
    font-size: clamp(1.5rem, 3vw, var(--blog-h3-size, 34px));
    line-height: 1.12;
}

.prose-content p,
.prose-content ul,
.prose-content ol,
.prose-content blockquote {
    margin: 0 0 1.35em;
}

.prose-content ul,
.prose-content ol {
    padding-left: 1.5rem;
}

.prose-content blockquote {
    padding: 1.2rem 1.5rem;
    border-left: 4px solid var(--blog-quote-accent, #7d2639);
    background: var(--blog-quote-background, #f8f3ed);
    font-family: var(--serif);
    font-size: 1.3rem;
}

.prose-content a {
    color: var(--blog-link-color, #7d2639);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.prose-content img {
    width: 100%;
    height: auto;
    border-radius: var(--blog-article-image-radius, 14px);
}

.prose-content figure {
    margin: 2rem 0;
}

.prose-content figcaption {
    margin-top: .65rem;
    color: var(--blog-article-meta-color, #806f73);
    font-size: .85rem;
    text-align: center;
}

.article-sidebar {
    position: sticky;
    top: 110px;
    align-self: start;
}

.article-sidebar-card {
    padding: 1.5rem;
    border: 1px solid var(--blog-sidebar-border-color, #e2d6cf);
    border-radius: var(--blog-sidebar-radius, 24px);
    background: var(--blog-sidebar-background, #f8f3ed);
    box-shadow: var(--blog-sidebar-shadow, 0 12px 30px rgba(49,31,36,.08));
}

.article-sidebar-card h2 {
    margin: .45rem 0 .8rem;
    font-size: 2rem;
    line-height: 1.05;
}

.related-articles {
    padding: clamp(4rem, 8vw, 7rem) 0;
    background: var(--related-section-background, #fbf6ef);
}

.related-articles > .shell {
    width: min(calc(100% - 2rem), var(--blog-layout-width, 1180px));
}

.related-articles > .shell > .eyebrow {
    font-size: var(--related-eyebrow-size, 12px);
}

.related-articles > .shell > h2 {
    max-width: 760px;
    margin: .25rem 0 1.8rem;
    color: var(--blog-heading-color, #231b1d);
    font-family: var(--related-heading-font, var(--serif));
    font-size: clamp(1.5rem, 4vw, var(--related-heading-size, 48px));
    line-height: 1.02;
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(var(--related-columns, 3), minmax(0, 1fr));
    gap: 1.25rem;
}

.related-article-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--related-accent-color, #7d2639) 18%, var(--border));
    border-radius: var(--related-card-radius, 24px);
    background: var(--related-card-background, #fffdfa);
    box-shadow: 0 16px 38px rgba(49, 31, 36, .08);
}

.related-article-image {
    display: block;
    overflow: hidden;
    aspect-ratio: var(--related-image-ratio, 16 / 10);
    background: #f3ebe2;
}

.related-article-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.related-article-placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #f3e6dd, #f8eff1);
}

.related-article-placeholder span {
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: var(--related-accent-color, #7d2639);
    color: #fff;
    font-family: var(--serif);
}

.related-article-copy {
    display: grid;
    align-content: start;
    gap: .75rem;
    padding: 1.15rem 1.2rem 1.3rem;
}

.related-article-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .6rem;
    color: var(--blog-article-meta-color, #806f73);
    font-size: .74rem;
}

.related-article-meta a,
.related-read-link {
    color: var(--related-accent-color, #7d2639);
    font-weight: 850;
    text-decoration: none;
}

.related-article-card h3 {
    margin: 0;
    font-family: var(--blog-card-title-font, var(--serif));
    font-size: var(--related-title-size, 27px);
    line-height: 1.04;
}

.related-article-card h3 a {
    color: var(--blog-heading-color, #231b1d);
    text-decoration: none;
}

.related-article-copy p {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: var(--blog-text-color, #3d3033);
    font-size: .92rem;
    line-height: 1.6;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--related-excerpt-lines, 3);
}

@media (max-width: 1080px) {
    .blog-grid {
        grid-template-columns: repeat(min(var(--blog-home-columns, 3), 2), minmax(0, 1fr));
    }

    .article-layout {
        grid-template-columns: minmax(0, 1fr) min(var(--blog-sidebar-width, 300px), 280px);
        gap: min(var(--blog-layout-gap, 56px), 32px);
    }

    .related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .article-layout {
        grid-template-columns: 1fr;
    }

    .article-sidebar {
        position: static;
        max-width: 680px;
    }
}

@media (max-width: 680px) {
    .blog-grid,
    .related-grid {
        grid-template-columns: 1fr;
    }

    .blog-hero h1,
    .article-header h1 {
        font-size: clamp(2.6rem, 13vw, 4.4rem);
    }
}

.blog-admin-page,.blog-editor-page { padding:3rem 0 6rem; }
.wide-shell { width:min(calc(100% - 2rem),1440px); }
.admin-filter-bar { display:flex; flex-wrap:wrap; gap:.75rem; margin:1.5rem 0; padding:1rem; border:1px solid var(--border); border-radius:var(--radius-md); background:#fffdf9; }
.admin-filter-bar input { flex:1 1 300px; }
.admin-table-wrap { overflow:auto; border:1px solid var(--border); border-radius:var(--radius-lg); background:#fffdf9; }
.admin-table { width:100%; border-collapse:collapse; }
.admin-table th,.admin-table td { padding:1rem; border-bottom:1px solid var(--border); text-align:left; vertical-align:middle; }
.admin-table td small { display:block; color:var(--ink-500); margin-top:.25rem; }
.admin-table-actions { display:flex; gap:.75rem; justify-content:flex-end; }
.admin-table-actions a { color:var(--rose-700); font-weight:800; }
.admin-panel { padding:1.4rem; border:1px solid var(--border); border-radius:var(--radius-lg); background:#fffdf9; box-shadow:var(--shadow-soft); }
.admin-panel h2 { margin-top:0; }
.blog-category-admin-grid { display:grid; grid-template-columns:360px minmax(0,1fr); gap:1.5rem; align-items:start; }
.stacked-form,.category-edit-form { display:grid; gap:1rem; }
.category-admin-list { display:grid; gap:1rem; }
.category-admin-list article { padding:1rem; border:1px solid var(--border); border-radius:var(--radius-md); }
.category-edit-form { grid-template-columns:1.2fr 1fr 2fr 100px auto; align-items:center; }
.check-row { display:flex!important; align-items:center; gap:.55rem; }
.check-row input { width:auto!important; }
.text-danger-button { border:0; background:none; color:#9a352d; text-decoration:underline; cursor:pointer; padding:.4rem 0; }
.blog-editor-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 350px;
    gap: 1.5rem;
    align-items: start;
}

.blog-editor-main,
.blog-editor-sidebar {
    display: grid;
    gap: 1.25rem;
}

.blog-editor-header {
    margin-bottom: 1.5rem;
}

.blog-basics-panel {
    margin-bottom: 1.5rem;
    padding: clamp(1.4rem, 2.5vw, 2rem);
}

.blog-section-heading {
    margin-bottom: 1.3rem;
}

.blog-section-heading h2 {
    margin: .25rem 0 0;
    font-size: clamp(2rem, 4vw, 3.2rem);
}

.editor-save-note {
    max-width: 270px;
    color: var(--ink-500);
    font-size: .82rem;
    text-align: right;
}

.blog-basics-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    gap: clamp(1.4rem, 3vw, 2.5rem);
}

.blog-basics-primary,
.blog-seo-fields {
    display: grid;
    align-content: start;
    gap: 1rem;
}

.blog-seo-fields {
    padding: 1.25rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--paper-2);
}

.blog-field {
    display: grid;
    gap: .45rem;
    color: var(--ink-800);
    font-weight: 750;
}

.blog-field > span {
    font-size: .86rem;
}

.blog-field input,
.blog-field textarea,
.blog-field select {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
    color: var(--ink-900);
    font: inherit;
}

.blog-field input,
.blog-field select {
    padding: .72rem .8rem;
}

.blog-field textarea {
    padding: .8rem;
    resize: vertical;
    line-height: 1.55;
}

.blog-field input:focus,
.blog-field textarea:focus,
.blog-field select:focus {
    border-color: var(--rose-700);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(126, 55, 70, .1);
}

.blog-field small {
    color: var(--ink-500);
    font-size: .76rem;
    font-weight: 500;
}

.blog-field small.is-over {
    color: #9a352d;
}

.large-input {
    min-height: 60px !important;
    font-family: var(--serif);
    font-size: clamp(1.4rem, 2vw, 1.8rem) !important;
}

.form-grid.two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.slug-preview {
    padding: .75rem .9rem;
    border-radius: 9px;
    background: #f7f2ec;
    color: var(--ink-500);
    font-size: .82rem;
    word-break: break-all;
}

.slug-preview strong {
    color: var(--ink-800);
}

.blog-content-panel {
    padding: clamp(1rem, 2vw, 1.4rem);
}

.editor-heading-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    align-items: center;
}

.editor-mode-switch {
    display: inline-flex;
    padding: 4px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--paper-2);
}

.editor-mode-switch button {
    border: 0;
    border-radius: 999px;
    padding: .55rem .9rem;
    background: transparent;
    color: var(--ink-600);
    cursor: pointer;
    font-weight: 800;
}

.editor-mode-switch button.is-active {
    background: var(--rose-700);
    color: #fff;
    box-shadow: 0 5px 14px rgba(126, 55, 70, .18);
}

.editor-workspace {
    position: relative;
}

.editor-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    padding: .7rem;
    border: 1px solid var(--border);
    border-bottom: 0;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    background: linear-gradient(180deg, #fbf7f2, #f4eee7);
}

.editor-toolbar button,
.editor-selection-toolbar button {
    min-width: 42px;
    min-height: 38px;
    padding: .45rem .65rem;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #fff;
    color: var(--ink-800);
    cursor: pointer;
    font-weight: 800;
}

.editor-toolbar button:hover,
.editor-selection-toolbar button:hover {
    border-color: var(--rose-700);
    color: var(--rose-700);
    transform: translateY(-1px);
}

.editor-toolbar-divider {
    width: 1px;
    margin: .25rem .2rem;
    background: var(--border);
}

.rich-editor,
.html-source-editor {
    width: 100%;
    min-height: 720px;
    border: 1px solid var(--border);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
    background: #fff;
    outline: none;
}

.rich-editor {
    padding: clamp(1.25rem, 3vw, 2.2rem);
    font-size: 1.08rem;
    line-height: 1.85;
}

.rich-editor:empty::before {
    content: attr(data-placeholder);
    color: #a79ca0;
    pointer-events: none;
}

.rich-editor:focus,
.html-source-editor:focus {
    border-color: var(--rose-700);
    box-shadow: 0 0 0 3px rgba(126, 55, 70, .1);
}

.html-source-editor {
    display: block;
    padding: 1.25rem;
    resize: vertical;
    color: #2d2430;
    font: 14px/1.65 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    tab-size: 2;
}

.html-source-editor[hidden] {
    display: none;
}

.rich-editor h2 {
    margin: 1.8em 0 .55em;
    font-size: 2.25rem;
}

.rich-editor h3 {
    margin: 1.55em 0 .5em;
    font-size: 1.7rem;
}

.rich-editor a {
    color: var(--rose-700);
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
    text-transform: none;
}

.rich-editor img {
    max-width: 100%;
    height: auto;
}

.rich-editor figure {
    margin: 1.5rem 0;
}

.rich-editor figcaption {
    color: var(--ink-500);
    text-align: center;
    font-size: .85rem;
}

.editor-selection-toolbar {
    position: absolute;
    z-index: 20;
    display: flex;
    gap: .3rem;
    padding: .35rem;
    transform: translateX(-50%);
    border: 1px solid rgba(126, 55, 70, .18);
    border-radius: 10px;
    background: #241d20;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .22);
}

.editor-selection-toolbar[hidden] {
    display: none;
}

.editor-selection-toolbar button {
    min-width: 38px;
    min-height: 34px;
    border-color: rgba(255, 255, 255, .14);
    background: transparent;
    color: #fff;
}

.editor-selection-toolbar button:hover {
    border-color: rgba(255, 255, 255, .35);
    color: #fff;
}

.editor-footer {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .7rem;
    color: var(--ink-500);
    font-size: .82rem;
}

.field-help {
    margin: 0;
    color: var(--ink-500);
    font-size: .82rem;
}

.sticky-publish-panel {
    position: sticky;
    top: 100px;
    z-index: 3;
    display: grid;
    gap: 1rem;
    padding: 1.5rem;
    background: linear-gradient(180deg, #fffdf9, #fbf5ef);
}

.sticky-publish-panel h2,
.featured-image-panel h2 {
    margin: -.15rem 0 .2rem;
    font-size: 2.2rem;
}

.automatic-date-card {
    display: grid;
    gap: .25rem;
    padding: .85rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
}

.automatic-date-card span {
    color: var(--ink-500);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.automatic-date-card strong {
    font-size: .9rem;
    line-height: 1.45;
}

.blog-save-button {
    width: 100%;
    min-height: 52px;
}

.featured-image-panel {
    display: grid;
    gap: 1rem;
}

.file-field input {
    min-height: auto;
    padding: .65rem;
}

.current-featured-image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-soft);
}

.danger-panel {
    border-color: #e2b2ad;
    background: #fff8f7;
}

.editor-link-modal[hidden],
.editor-preview-modal[hidden] {
    display: none;
}

.editor-link-modal,
.editor-preview-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    padding: 1rem;
}

.editor-modal-backdrop,
.editor-preview-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(31, 25, 28, .62);
    backdrop-filter: blur(8px);
}

.editor-link-dialog,
.editor-preview-dialog {
    position: relative;
    width: min(760px, 100%);
    max-height: 90vh;
    overflow: auto;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .3);
}

.editor-preview-dialog {
    width: min(900px, 100%);
}

.editor-link-dialog .modal-close,
.editor-preview-dialog .modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
}

.editor-link-dialog h2 {
    margin: .3rem 0 1.25rem;
    font-size: clamp(2rem, 5vw, 3.2rem);
}

.link-form-grid {
    display: grid;
    gap: 1rem;
}

.link-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin: 1.2rem 0;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--paper-2);
}

.link-modal-error {
    margin: 0 0 1rem;
    padding: .75rem .9rem;
    border: 1px solid #e2b2ad;
    border-radius: 9px;
    background: #fff5f3;
    color: #8a2f2a;
    font-weight: 700;
}

.link-modal-actions {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .7rem;
}

.link-modal-actions [data-link-remove] {
    margin-right: auto;
}

@media (max-width: 1180px) {
    .blog-basics-grid {
        grid-template-columns: 1fr;
    }

    .blog-editor-layout {
        grid-template-columns: minmax(0, 1fr) 310px;
    }
}

@media (max-width: 1050px) {
    .blog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sticky-publish-panel {
        position: static;
    }

    .blog-editor-layout,
    .blog-category-admin-grid {
        grid-template-columns: 1fr;
    }

    .blog-editor-sidebar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sticky-publish-panel {
        grid-column: 1 / -1;
    }

    .category-edit-form {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 680px) {
    .blog-grid {
        grid-template-columns: 1fr;
    }

    .blog-hero h1,
    .article-header h1 {
        font-size: clamp(2.7rem, 14vw, 4.5rem);
    }

    .form-grid.two,
    .blog-editor-sidebar,
    .category-edit-form,
    .link-options {
        grid-template-columns: 1fr;
    }

    .panel-heading,
    .editor-heading-actions,
    .editor-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .editor-save-note {
        max-width: none;
        text-align: left;
    }

    .editor-toolbar {
        position: sticky;
        top: 0;
        z-index: 5;
        max-height: 132px;
        overflow: auto;
    }

    .rich-editor,
    .html-source-editor {
        min-height: 540px;
    }

    .rich-editor {
        padding: 1rem;
    }

    .editor-mode-switch {
        align-self: flex-start;
    }

    .link-modal-actions {
        flex-direction: column-reverse;
    }

    .link-modal-actions .button {
        width: 100%;
    }

    .link-modal-actions [data-link-remove] {
        margin-right: 0;
    }
}


.complete-blog-design-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(430px, .78fr);
    gap: 1.5rem;
    align-items: start;
}

.complete-blog-design-controls {
    display: grid;
    gap: 1.25rem;
}

.design-control-panel {
    display: grid;
    gap: 1.15rem;
}

.design-control-panel .panel-heading {
    margin-bottom: 0;
}

.design-control-panel .panel-heading h2 {
    margin: .2rem 0 0;
    font-size: 2rem;
}

.design-field-grid,
.design-color-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.color-control {
    display: grid;
    grid-template-columns: 1fr 54px;
    gap: .35rem .7rem;
    align-items: center;
    font-weight: 800;
}

.color-control span {
    grid-column: 1 / -1;
    font-size: .84rem;
}

.color-control input[type="color"] {
    width: 54px;
    height: 46px;
    padding: .2rem;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: #fff;
    cursor: pointer;
}

.color-control code {
    color: var(--ink-500);
    font-size: .75rem;
}

.range-field output,
.blog-field output {
    float: right;
    color: var(--rose-700);
    font-size: .78rem;
}

.design-checkbox {
    padding: .9rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--paper-2);
}

.design-save-bar {
    position: sticky;
    bottom: 1rem;
    z-index: 10;
    display: flex;
    gap: .8rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: rgba(255,253,249,.96);
    box-shadow: 0 15px 40px rgba(42,28,32,.13);
    backdrop-filter: blur(12px);
}

.complete-blog-preview-wrap {
    position: sticky;
    top: 92px;
    max-height: calc(100vh - 112px);
    overflow: auto;
    padding-right: .25rem;
}

.complete-blog-preview {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: var(--shadow-soft);
}

.preview-label {
    display: block;
    padding: .65rem 1rem;
    border-bottom: 1px solid var(--border);
    background: #241d20;
    color: #fff;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.preview-blog-home {
    background: var(--blog-home-page-background, #fffdf9);
}

.preview-blog-hero {
    padding: calc(var(--blog-home-hero-padding, 72px) * .42) 1.2rem;
    background: var(--blog-home-hero-background, #f8f3ed);
    text-align: var(--blog-home-hero-align, left);
}

.preview-blog-hero h1 {
    margin: .35rem 0 .55rem;
    color: var(--blog-home-hero-title-color, #231b1d);
    font-family: var(--blog-home-hero-title-font, Georgia, serif);
    font-size: min(calc(var(--blog-home-hero-title-size, 78px) * .52), 42px);
    line-height: .98;
}

.preview-blog-hero p {
    margin: 0;
    color: var(--blog-home-hero-text-color, #5b4c50);
    font-size: min(var(--blog-home-hero-text-size, 20px), 17px);
}

.preview-blog-body {
    padding: 1rem;
}

.preview-category-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: 1rem;
}

.preview-category-buttons span {
    padding: .45rem .7rem;
    border: 1px solid var(--blog-category-border-color, #e2d6cf);
    border-radius: var(--blog-category-radius, 999px);
    background: var(--blog-category-background, #fffdf9);
    color: var(--blog-category-text-color, #5b4c50);
    font-size: min(var(--blog-category-font-size, 14px), 13px);
    font-weight: 800;
}

.preview-category-buttons .is-active {
    background: var(--blog-category-active-background, #7d2639);
    color: var(--blog-category-active-text-color, #fff);
}

.preview-home-grid {
    display: grid;
    grid-template-columns: repeat(min(var(--blog-home-columns, 3), 3), minmax(0, 1fr));
    gap: min(var(--blog-home-grid-gap, 24px), 12px);
}

.preview-home-card {
    overflow: hidden;
    border: var(--blog-card-border-width, 1px) solid var(--blog-card-border-color, #e2d6cf);
    border-radius: var(--blog-card-radius, 24px);
    background: var(--blog-card-background, #fffdf9);
    box-shadow: var(--blog-card-shadow, none);
}

.preview-home-image {
    display: grid;
    place-items: center;
    aspect-ratio: var(--blog-card-image-ratio, 16 / 9);
    background: linear-gradient(135deg, #ead9cf, #f8edf0);
    color: var(--blog-card-accent-color, #7d2639);
    font-size: 1.5rem;
}

.preview-home-copy {
    padding: min(var(--blog-card-padding, 22px), 14px);
}

.preview-home-copy small {
    color: var(--blog-card-meta-color, #806f73);
}

.preview-home-copy h2 {
    margin: .45rem 0;
    color: var(--blog-card-title-color, #231b1d);
    font-family: var(--blog-card-title-font, Georgia, serif);
    font-size: min(var(--blog-card-title-size, 31px), 22px);
    line-height: 1.05;
}

.preview-home-copy p {
    display: -webkit-box;
    overflow: hidden;
    margin: 0 0 .55rem;
    color: var(--blog-card-excerpt-color, #5b4c50);
    font-size: min(var(--blog-card-excerpt-size, 16px), 14px);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--blog-card-excerpt-lines, 4);
}

.preview-home-copy strong {
    color: var(--blog-card-accent-color, #7d2639);
    font-size: .78rem;
}

.preview-article-page {
    border-top: 7px solid #f0e7df;
}

.preview-article-header {
    padding: calc(var(--blog-article-header-padding, 72px) * .34) 1.25rem;
    background: var(--blog-article-header-background, #f8f3ed);
    text-align: var(--blog-article-header-align, left);
}

.preview-article-header h1 {
    margin: .4rem 0;
    color: var(--blog-heading-color, #231b1d);
    font-family: var(--blog-title-font, Georgia, serif);
    font-size: min(calc(var(--blog-title-size, 76px) * .48), 42px);
    line-height: .98;
}

.preview-article-header p {
    color: var(--blog-text-color, #3d3033);
    font-size: min(var(--blog-article-deck-size, 21px), 17px);
}

.preview-article-header em {
    color: var(--blog-article-meta-color, #806f73);
    font-size: .75rem;
}

.preview-featured-image {
    display: grid;
    place-items: center;
    width: 88%;
    min-height: 150px;
    margin: 1rem auto;
    border-radius: var(--blog-featured-radius, 24px);
    background: linear-gradient(135deg, #352d2e, #8d6a62);
    color: #fff;
    box-shadow: var(--blog-featured-shadow, none);
}

.preview-article-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, calc(var(--blog-sidebar-width, 300px) * .48));
    gap: min(var(--blog-layout-gap, 56px), 22px);
    padding: 1rem;
}

.preview-prose {
    color: var(--blog-text-color, #3d3033);
    font-family: var(--blog-body-font, Arial, sans-serif);
    font-size: min(var(--blog-body-size, 18px), 15px);
    line-height: var(--blog-body-line-height, 1.85);
}

.preview-prose h2 {
    color: var(--blog-heading-color, #231b1d);
    font-family: var(--blog-h2-font, Georgia, serif);
    font-size: min(var(--blog-h2-size, 48px), 28px);
}

.preview-prose h3 {
    color: var(--blog-heading-color, #231b1d);
    font-family: var(--blog-h3-font, Georgia, serif);
    font-size: min(var(--blog-h3-size, 34px), 22px);
}

.preview-prose a {
    color: var(--blog-link-color, #7d2639);
}

.preview-prose blockquote {
    margin: 1rem 0;
    padding: .8rem;
    border-left: 4px solid var(--blog-quote-accent, #7d2639);
    background: var(--blog-quote-background, #f8f3ed);
}

.preview-sidebar {
    align-self: start;
    padding: .8rem;
    border: 1px solid var(--blog-sidebar-border-color, #e2d6cf);
    border-radius: var(--blog-sidebar-radius, 24px);
    background: var(--blog-sidebar-background, #f8f3ed);
    box-shadow: var(--blog-sidebar-shadow, none);
}

.preview-sidebar h3 {
    margin: .35rem 0;
    font-size: 1.1rem;
}

.preview-sidebar p {
    font-size: .78rem;
}

.preview-related {
    padding: 1rem;
    background: var(--related-section-background, #fbf6ef);
}

.preview-related > small {
    font-size: var(--related-eyebrow-size, 12px);
}

.preview-related > h2 {
    margin: .3rem 0 .8rem;
    font-family: var(--related-heading-font, Georgia, serif);
    font-size: min(var(--related-heading-size, 48px), 34px);
    line-height: 1.02;
}

.preview-related-grid {
    display: grid;
    grid-template-columns: repeat(min(var(--related-columns, 3), 3), minmax(0, 1fr));
    gap: .65rem;
}

.preview-related-grid article {
    overflow: hidden;
    border-radius: var(--related-card-radius, 24px);
    background: var(--related-card-background, #fffdfa);
}

.preview-related-image {
    display: grid;
    place-items: center;
    aspect-ratio: var(--related-image-ratio, 16 / 10);
    background: #ead9cf;
    color: var(--related-accent-color, #7d2639);
}

.preview-related-grid h3,
.preview-related-grid p {
    margin: .5rem .65rem;
}

.preview-related-grid h3 {
    font-size: min(var(--related-title-size, 27px), 18px);
}

.preview-related-grid p {
    display: -webkit-box;
    overflow: hidden;
    font-size: .72rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--related-excerpt-lines, 3);
}

@media (max-width: 1180px) {
    .complete-blog-design-layout {
        grid-template-columns: 1fr;
    }

    .complete-blog-preview-wrap {
        position: static;
        max-height: none;
    }
}

@media (max-width: 680px) {
    .design-field-grid,
    .design-color-grid {
        grid-template-columns: 1fr;
    }

    .design-save-bar {
        position: static;
        flex-direction: column;
    }

    .preview-home-grid,
    .preview-related-grid,
    .preview-article-layout {
        grid-template-columns: 1fr;
    }
}

/* Dennis & Becca blog author bio */
.blog-author-section {
    padding: 0 0 clamp(3rem, 6vw, 5rem);
}

.blog-author-section > .shell {
    width: min(calc(100% - 2rem), 980px);
}

.blog-author-bio-card {
    display: grid;
    grid-template-columns: var(--bio-image-size, 165px) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: center;
    padding: var(--bio-card-padding, 24px);
    border: var(--bio-border-width, 1px) solid var(--bio-border-color, #e2d6cf);
    border-radius: var(--bio-card-radius, 24px);
    background: var(--bio-card-background, #fffdf9);
    text-align: var(--bio-text-align, left);
}

.blog-author-bio-card[data-shadow="none"] {
    box-shadow: none;
}

.blog-author-bio-card[data-shadow="soft"] {
    box-shadow: 0 12px 30px rgba(42, 28, 32, .08);
}

.blog-author-bio-card[data-shadow="medium"] {
    box-shadow: 0 18px 46px rgba(42, 28, 32, .14);
}

.blog-author-bio-card[data-shadow="strong"] {
    box-shadow: 0 24px 65px rgba(42, 28, 32, .22);
}

.blog-author-bio-card[data-layout="stacked"] {
    grid-template-columns: 1fr;
    justify-items: var(--bio-text-align, left);
}

.blog-author-bio-card img {
    display: block;
    width: var(--bio-image-size, 165px);
    height: var(--bio-image-size, 165px);
    object-fit: cover;
    box-shadow: 0 10px 26px rgba(42, 28, 32, .14);
}

.blog-author-bio-card[data-image-shape="rounded"] img {
    border-radius: 24px;
}

.blog-author-bio-card[data-image-shape="circle"] img {
    border-radius: 50%;
}

.blog-author-bio-card[data-image-shape="square"] img {
    border-radius: 0;
}

.blog-author-bio-card[data-layout="stacked"][style*="--bio-text-align: center"] {
    justify-items: center;
}

.blog-author-bio-label {
    display: block;
    margin-bottom: .35rem;
    color: var(--bio-label-color, #7d2639);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.blog-author-bio-card h2 {
    margin: 0 0 .55rem;
    color: var(--bio-heading-color, #231b1d);
    font-size: var(--bio-heading-size, 40px);
    line-height: 1.05;
}

.blog-author-bio-card p {
    margin: 0 0 .8rem;
    color: var(--bio-text-color, #5b4c50);
    font-size: var(--bio-body-size, 16px);
    line-height: var(--bio-line-height, 1.7);
}

.blog-author-bio-card a {
    color: var(--bio-link-color, #7d2639);
    font-weight: 850;
    text-decoration: none;
}

.public-blog-author-bio {
    width: 100%;
}

.blog-author-bio-admin-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(390px, .8fr);
    gap: 1.4rem;
    align-items: start;
}

.blog-author-bio-settings {
    display: grid;
    gap: 1.25rem;
}

.blog-author-bio-form,
.blog-author-bio-design-panel {
    display: grid;
    gap: 1.15rem;
    padding: 1.5rem;
}

.blog-author-bio-form label,
.blog-author-bio-design-panel label {
    display: grid;
    gap: .45rem;
    font-weight: 800;
}

.blog-author-bio-form input,
.blog-author-bio-form textarea,
.blog-author-bio-design-panel input,
.blog-author-bio-design-panel select {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
    color: var(--ink-900);
    font: inherit;
}

.blog-author-bio-form input,
.blog-author-bio-design-panel select,
.blog-author-bio-design-panel input[type="text"] {
    min-height: 46px;
    padding: .72rem .8rem;
}

.blog-author-bio-form textarea {
    padding: .9rem;
    line-height: 1.65;
    resize: vertical;
}

.blog-author-bio-form small,
.blog-author-bio-form span small {
    color: var(--ink-500);
    font-size: .76rem;
    font-weight: 500;
}

.bio-design-grid,
.bio-range-grid,
.bio-color-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.bio-range-grid {
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--paper-2);
}

.bio-range-grid label > span {
    display: flex;
    justify-content: space-between;
    gap: .8rem;
}

.bio-range-grid output {
    color: var(--rose-700);
    font-size: .78rem;
}

.bio-range-grid input[type="range"] {
    min-height: auto;
    padding: 0;
    accent-color: var(--rose-700);
}

.bio-color-grid input[type="color"] {
    min-height: 48px;
    padding: .25rem;
    cursor: pointer;
}

.bio-label-settings {
    display: grid;
    gap: 1rem;
    padding-top: .25rem;
}

.blog-author-bio-save {
    width: 100%;
    min-height: 54px;
}

.blog-author-bio-preview {
    position: sticky;
    top: 100px;
    display: grid;
    gap: 1rem;
    padding: 1.35rem;
}

.blog-author-bio-preview .blog-author-bio-card {
    max-width: 100%;
}

@media (max-width: 1050px) {
    .blog-author-bio-admin-layout {
        grid-template-columns: 1fr;
    }

    .blog-author-bio-preview {
        position: static;
    }
}

@media (max-width: 680px) {
    .bio-design-grid,
    .bio-range-grid,
    .bio-color-grid {
        grid-template-columns: 1fr;
    }

    .blog-author-bio-card {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }
}


/* Admin member management */
.member-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.member-stat-card {
    display: grid;
    gap: .25rem;
    padding: 1.25rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--paper);
    box-shadow: var(--shadow-soft);
}

.member-stat-card strong {
    font-family: var(--serif);
    font-size: 2.25rem;
    line-height: 1;
}

.member-stat-card span {
    color: var(--ink-500);
    font-size: .82rem;
    font-weight: 800;
}

.member-filter-bar {
    display: grid;
    grid-template-columns: minmax(240px, 1.5fr) repeat(3, minmax(150px, .7fr)) auto auto;
    gap: .8rem;
    align-items: end;
    margin-bottom: 1.25rem;
    padding: 1rem;
}

.member-filter-bar label,
.member-edit-form label,
.member-danger-card label,
.member-delete-card label {
    display: grid;
    gap: .4rem;
    font-weight: 800;
}

.member-filter-bar input,
.member-filter-bar select,
.member-edit-form input,
.member-danger-card textarea,
.member-delete-card input {
    width: 100%;
    min-height: 44px;
    padding: .7rem .8rem;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: #fff;
    color: var(--ink-900);
    font: inherit;
}

.member-danger-card textarea {
    min-height: 110px;
    resize: vertical;
}

.member-table-wrap {
    overflow-x: auto;
    padding: 0;
}

.member-table {
    width: 100%;
    border-collapse: collapse;
}

.member-table th,
.member-table td {
    padding: 1rem;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: middle;
}

.member-table th {
    color: var(--ink-500);
    font-size: .72rem;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.member-table td:first-child {
    min-width: 230px;
}

.member-table td:first-child strong,
.member-table td:first-child span,
.member-table td:first-child small {
    display: block;
}

.member-table td:first-child span {
    color: var(--ink-500);
    font-size: .84rem;
}

.member-table td:first-child small {
    margin-top: .25rem;
    color: var(--rose-700);
    font-weight: 850;
}

.member-status {
    display: inline-flex;
    padding: .38rem .65rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 900;
}

.member-status.is-active {
    background: #e4f4ea;
    color: #20623a;
}

.member-status.is-suspended {
    background: #f8dfe3;
    color: #8b2239;
}

.member-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 350px;
    gap: 1.3rem;
    align-items: start;
}

.member-detail-main,
.member-detail-sidebar {
    display: grid;
    gap: 1.25rem;
}

.member-detail-sidebar {
    position: sticky;
    top: 95px;
}

.member-account-card,
.member-activity-card,
.member-summary-card,
.member-danger-card,
.member-delete-card {
    padding: 1.35rem;
}

.member-edit-form {
    display: grid;
    gap: 1rem;
}

.member-summary-card dl {
    display: grid;
    gap: .75rem;
    margin: 1rem 0;
}

.member-summary-card dl > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .7rem;
    border-bottom: 1px solid var(--border);
}

.member-summary-card dt {
    color: var(--ink-500);
}

.member-summary-card dd {
    margin: 0;
    font-weight: 850;
    text-align: right;
}

.member-letter-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--border);
}

.member-letter-row span,
.member-letter-row time {
    color: var(--ink-500);
    font-size: .78rem;
}

.member-letter-row a {
    display: block;
    margin-top: .2rem;
    color: var(--ink-900);
    font-family: var(--serif);
    font-size: 1.25rem;
    font-weight: 800;
    text-decoration: none;
}

.member-danger-card,
.member-delete-card {
    border-color: #efc7cf;
}

.member-delete-card {
    background: #fff8f8;
}

.member-danger-card form,
.member-delete-card form {
    display: grid;
    gap: .85rem;
}

.suspension-note {
    margin-top: 1rem;
    padding: .9rem;
    border-radius: 10px;
    background: var(--paper-2);
}

.suspension-note p {
    margin: .3rem 0 0;
}

@media (max-width: 1050px) {
    .member-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .member-filter-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .member-detail-grid {
        grid-template-columns: 1fr;
    }

    .member-detail-sidebar {
        position: static;
    }
}

@media (max-width: 620px) {
    .member-stat-grid,
    .member-filter-bar {
        grid-template-columns: 1fr;
    }

    .member-letter-row {
        display: grid;
    }
}

/* Curated letter library */
.curated-library-page {
    padding-bottom: clamp(4rem, 8vw, 7rem);
}

.curated-library-header {
    align-items: end;
    margin-bottom: 1.4rem;
}

.curated-library-header > div:first-child {
    max-width: 820px;
}

.curated-library-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.curated-library-stats article {
    display: grid;
    gap: .2rem;
    min-height: 118px;
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--paper);
    box-shadow: var(--shadow-soft);
}

.curated-library-stats strong {
    font-family: var(--serif);
    font-size: 2.5rem;
    line-height: 1;
}

.curated-library-stats span {
    color: var(--ink-500);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.curated-library-filters {
    display: grid;
    grid-template-columns: minmax(260px, 1.45fr) minmax(190px, .8fr) minmax(150px, .55fr) auto;
    gap: .85rem;
    align-items: end;
    margin-bottom: 1rem;
    padding: 1rem;
}

.curated-library-filters label {
    display: grid;
    gap: .4rem;
    min-width: 0;
    font-weight: 800;
}

.curated-library-filters label > span {
    color: var(--ink-700);
    font-size: .78rem;
}

.curated-library-filters input,
.curated-library-filters select {
    width: 100%;
    min-height: 46px;
    padding: .72rem .8rem;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
    color: var(--ink-900);
    font: inherit;
}

.curated-selection-bar {
    position: sticky;
    top: 78px;
    z-index: 15;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1.25rem;
    padding: .9rem 1rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: rgba(255, 253, 249, .96);
    box-shadow: 0 14px 34px rgba(42, 28, 32, .1);
    backdrop-filter: blur(12px);
}

.curated-selection-bar > div {
    display: flex;
    gap: .8rem;
    align-items: center;
}

.curated-selection-bar [data-selected-letter-count] {
    color: var(--ink-500);
    font-size: .82rem;
    font-weight: 850;
}

.curated-letter-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.curated-letter-card {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr auto auto;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: #fffdf9;
    box-shadow: var(--shadow-soft);
}

.curated-letter-card.is-published {
    background: #faf7f2;
    opacity: .86;
}

.curated-letter-card > header {
    position: relative;
    padding: 1.4rem 1.45rem 1rem;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(135deg, #fffdf9, #f8f0ec);
}

.curated-checkbox {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid var(--border);
    border-radius: 9px;
    background: #fff;
    cursor: pointer;
}

.curated-checkbox input {
    width: 18px;
    height: 18px;
    accent-color: var(--rose-700);
}

.curated-card-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    padding-right: 42px;
}

.curated-card-badges span {
    display: inline-flex;
    padding: .35rem .58rem;
    border-radius: 999px;
    background: #f1e7e2;
    color: var(--rose-800);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.curated-card-badges .curated-published-badge {
    background: #e4f3e9;
    color: #23613c;
}

.curated-letter-card h2 {
    margin: .85rem 0 .45rem;
    font-size: clamp(1.9rem, 3vw, 2.75rem);
    line-height: 1.02;
}

.curated-recipient {
    margin: 0;
    color: var(--ink-500);
    font-size: .86rem;
    font-weight: 750;
}

.curated-letter-preview {
    max-height: 330px;
    overflow: auto;
    padding: 1.25rem 1.45rem;
    color: var(--ink-700);
    font-size: .96rem;
    line-height: 1.78;
    scrollbar-width: thin;
}

.curated-letter-preview br + br {
    content: "";
    display: block;
    margin-top: .85rem;
}

.curated-letter-card > footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .6rem;
    padding: .85rem 1.45rem;
    border-top: 1px solid var(--border);
    color: var(--ink-500);
    font-size: .76rem;
}

.curated-card-actions {
    padding: 0 1.45rem 1.35rem;
}

.curated-card-actions .button {
    width: 100%;
    justify-content: center;
}

.curated-letter-grid > .empty-state {
    grid-column: 1 / -1;
}

@media (max-width: 980px) {
    .curated-library-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .curated-letter-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    .curated-library-stats,
    .curated-library-filters {
        grid-template-columns: 1fr;
    }

    .curated-selection-bar {
        position: static;
        align-items: stretch;
        flex-direction: column;
    }

    .curated-selection-bar > div {
        justify-content: space-between;
    }

    .curated-library-header {
        align-items: start;
    }
}

/* Homepage unsent letters explainer */
.home-explainer-section {
    padding: clamp(3.5rem, 7vw, 6.5rem) 0;
    background: var(--paper);
}

.home-explainer-layout {
    display: grid;
    grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    align-items: start;
}

.home-explainer-heading h2 {
    max-width: 620px;
    margin: .55rem 0 0;
    font-size: clamp(2.15rem, 4.3vw, 4rem);
    line-height: .98;
}

.home-explainer-copy {
    display: grid;
    gap: 1.2rem;
    padding-top: .35rem;
    color: var(--ink-700);
    font-size: clamp(1rem, 1.5vw, 1.1rem);
    line-height: 1.85;
}

.home-explainer-copy p {
    margin: 0;
}

.home-message-section {
    padding: clamp(3rem, 6vw, 5.5rem) 0;
    background: var(--paper-2);
}

.home-message-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.home-message-grid article {
    display: grid;
    align-content: start;
    min-height: 100%;
    padding: clamp(1.4rem, 3vw, 2rem);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--paper);
    box-shadow: var(--shadow-soft);
}

.home-message-number {
    display: inline-flex;
    margin-bottom: 1.4rem;
    color: var(--rose-700);
    font-size: .74rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.home-message-grid h3 {
    margin: 0 0 .75rem;
    font-size: clamp(1.65rem, 2.7vw, 2.35rem);
    line-height: 1.04;
}

.home-message-grid p {
    margin: 0;
    color: var(--ink-700);
    line-height: 1.75;
}

.home-wall-purpose-section {
    padding: clamp(3.5rem, 7vw, 6.5rem) 0;
    background: var(--paper);
}

.home-wall-purpose-card {
    display: grid;
    grid-template-columns: minmax(260px, .85fr) minmax(0, 1.15fr);
    gap: clamp(2.5rem, 6vw, 5.5rem);
    align-items: start;
    padding: clamp(1.6rem, 4vw, 3rem);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, #fffdf9, #f8f1ec);
    box-shadow: var(--shadow-soft);
}

.home-wall-purpose-card h2 {
    margin: .55rem 0 0;
    font-size: clamp(2rem, 3.9vw, 3.65rem);
    line-height: .98;
}

.home-wall-purpose-copy {
    display: grid;
    gap: 1rem;
    color: var(--ink-700);
    font-size: clamp(1rem, 1.5vw, 1.08rem);
    line-height: 1.8;
}

.home-wall-purpose-copy p {
    margin: 0;
}

.home-wall-purpose-copy a {
    color: var(--rose-700);
    font-weight: 850;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

@media (max-width: 900px) {
    .home-explainer-layout,
    .home-wall-purpose-card {
        grid-template-columns: 1fr;
    }

    .home-message-grid {
        grid-template-columns: 1fr;
    }
}
