@media print {
    #storyShareDialog { display: none !important; }
    body {
        background: #fff;
        margin: 0;
        padding: 0;
    }

    .writing-toolbar,
    .writing-help,
    #imagePicker,
    #premiumInfo,
    .app-header,
    .form-card,
    #limitMessage,
    #unlockCard,
    .unlock-card,
    .buttons,
    #storyNavigation,
    #actionButtons,
    .story-editor {
        display: none !important;
    }

    .app-shell {
        margin: 0;
        padding: 0;
        max-width: none;
    }

    .layout {
        display: block;
        margin: 0;
    }

    .card,
    .output-card,
    .output-container {
        border: none;
        box-shadow: none;
        margin: 0;
        padding: 0;
        position: static;
    }

    #output {
        position: relative;
        width: 100%;
        margin: 0;
        padding: 12px 32px 24px;
        border: none;
        box-sizing: border-box;
        page-break-before: auto;
        page-break-after: auto;
        page-break-inside: auto;
    }

    #output.has-pages {
        padding: 0;
    }

    #output.has-pages .story-page {
        padding: 12px 32px 24px;
        page-break-after: always;
        break-after: page;
    }

    #output.has-pages .story-page:last-child {
        page-break-after: auto;
        break-after: auto;
    }

    .story-page.is-hidden {
        display: block !important;
    }

    #output:not(.has-pages),
    #output.has-pages .story-page {
        height: 100vh;
        box-sizing: border-box;
        font-size: calc(22px * var(--print-scale, 1));
        line-height: calc(1.9 * var(--print-scale, 1));
    }

    #output .emoji {
        font-size: calc(52px * var(--print-scale, 1));
    }

    #output .emoji-word {
        font-size: calc(22px * var(--print-scale, 1));
        margin-top: calc(65px * var(--print-scale, 1));
        margin-left: calc(-70px * var(--print-scale, 1));
    }

    #output .vocab-item .emoji {
        font-size: calc(90px * var(--print-scale, 1));
    }

    #output .vocab-item .picto-image {
        width: calc(120px * var(--print-scale, 1));
        height: calc(120px * var(--print-scale, 1));
    }

    #output .vocab-item .emoji-word {
        margin-top: calc(6px * var(--print-scale, 1));
        margin-left: 0;
    }

    #output .picto-container {
        width: calc(90px * var(--print-scale, 1));
        margin: 0 calc(6px * var(--print-scale, 1));
    }

    #output .picto-image {
        width: calc(72px * var(--print-scale, 1));
        height: calc(72px * var(--print-scale, 1));
        border-radius: calc(8px * var(--print-scale, 1));
    }

    #output .picto-caption {
        margin-top: calc(6px * var(--print-scale, 1));
        font-size: calc(16px * var(--print-scale, 1));
    }

    #output:not(.has-pages)::after,
    #output.has-pages .story-page::after {
        font-size: calc(20px * var(--print-scale, 1));
    }
}

body.print-preview {
    background: #fff;
    margin: 0;
    padding: 0;
}

body.print-preview .writing-toolbar,
body.print-preview .writing-help,
body.print-preview #imagePicker,
body.print-preview .app-header,
body.print-preview .form-card,
body.print-preview #limitMessage,
body.print-preview #unlockCard,
body.print-preview .unlock-card,
body.print-preview .buttons,
body.print-preview #storyShareDialog,
body.print-preview #storyNavigation,
body.print-preview #actionButtons,
body.print-preview .story-editor {
    display: none !important;
}

body.print-preview .app-shell {
    margin: 0;
    padding: 0;
    max-width: none;
}

body.print-preview .layout {
    display: block;
    margin: 0;
}

body.print-preview .card,
body.print-preview .output-card,
body.print-preview .output-container {
    border: none;
    box-shadow: none;
    margin: 0;
    padding: 0;
    position: static;
}

body.print-preview #output {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 12px 32px 24px;
    border: none;
    box-sizing: border-box;
    page-break-before: auto;
    page-break-after: auto;
    page-break-inside: auto;
}

body.print-preview #output.has-pages {
    padding: 0;
}

body.print-preview #output.has-pages .story-page {
    padding: 12px 32px 24px;
    page-break-after: always;
    break-after: page;
}

body.print-preview #output.has-pages .story-page:last-child {
    page-break-after: auto;
    break-after: auto;
}

body.print-preview .story-page.is-hidden {
    display: block !important;
}

body.print-preview #output:not(.has-pages),
body.print-preview #output.has-pages .story-page {
    height: 100vh;
    box-sizing: border-box;
    font-size: calc(22px * var(--print-scale, 1));
    line-height: calc(1.9 * var(--print-scale, 1));
}

body.print-preview #output .emoji {
    font-size: calc(52px * var(--print-scale, 1));
}

body.print-preview #output .emoji-word {
    font-size: calc(22px * var(--print-scale, 1));
    margin-top: calc(65px * var(--print-scale, 1));
    margin-left: calc(-70px * var(--print-scale, 1));
}

body.print-preview #output .vocab-item .emoji {
    font-size: calc(90px * var(--print-scale, 1));
}

body.print-preview #output .vocab-item .picto-image {
    width: calc(120px * var(--print-scale, 1));
    height: calc(120px * var(--print-scale, 1));
}

body.print-preview #output .vocab-item .emoji-word {
    margin-top: calc(6px * var(--print-scale, 1));
    margin-left: 0;
}

body.print-preview #output .picto-container {
    width: calc(90px * var(--print-scale, 1));
    margin: 0 calc(6px * var(--print-scale, 1));
}

body.print-preview #output .picto-image {
    width: calc(72px * var(--print-scale, 1));
    height: calc(72px * var(--print-scale, 1));
    border-radius: calc(8px * var(--print-scale, 1));
}

body.print-preview #output .picto-caption {
    margin-top: calc(6px * var(--print-scale, 1));
    font-size: calc(16px * var(--print-scale, 1));
}

body.print-preview #output:not(.has-pages)::after,
body.print-preview #output.has-pages .story-page::after {
    font-size: calc(20px * var(--print-scale, 1));
}

@media print { #generationStatus { display: none !important; } }
