:root {
    --page-bg: #dfe7e1;
    --white: #ffffff;
    --line: color-mix(in srgb, var(--ink) 10%, transparent);
    --muted: color-mix(in srgb, var(--ink) 62%, transparent);
    --soft-green: color-mix(in srgb, var(--matte) 12%, var(--paper));
    --soft-card: color-mix(in srgb, var(--matte) 5%, var(--paper));
    --shadow: 0 24px 60px rgba(12, 31, 23, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: #e9efe9; }
body {
    margin: 0;
    min-width: 320px;
    background:
        radial-gradient(circle at top left, rgba(255,255,255,.72), transparent 27rem),
        linear-gradient(180deg, #e8efe9 0%, var(--page-bg) 100%);
    color: var(--ink);
    font-family: "Manrope", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}
button, a { font: inherit; }
a { color: inherit; }
svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.page-shell {
    width: min(1180px, calc(100% - 44px));
    margin: 30px auto;
}
.resume-card {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 28px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--paper) 96%, white), var(--paper));
    box-shadow: var(--shadow);
}

.resume-header {
    position: relative;
    min-height: 220px;
    padding: 42px 56px 38px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--dark) 0%, var(--dark-alt) 48%, var(--matte) 100%);
    color: var(--paper);
    border-bottom: 4px solid color-mix(in srgb, var(--matte) 72%, var(--accent));
}
.header-actions {
    position: absolute;
    z-index: 3;
    top: 22px;
    right: 26px;
    display: flex;
    gap: 9px;
}
.icon-button, .export-button {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    color: var(--paper);
    text-decoration: none;
    cursor: pointer;
    backdrop-filter: blur(8px);
    transition: transform .25s ease, background .25s ease, border-color .25s ease;
}
.icon-button { width: 42px; }
.export-button { gap: 8px; padding: 0 16px; }
.icon-button:hover, .export-button:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--accent) 55%, transparent);
    background: rgba(255,255,255,.12);
}
.identity-row {
    position: relative;
    z-index: 2;
}
.eyebrow {
    margin: 0 0 10px;
    color: color-mix(in srgb, var(--accent) 80%, var(--paper));
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
}
.identity-copy h1 {
    margin: 0;
    max-width: 820px;
    font-family: "Sora", sans-serif;
    font-size: clamp(2.4rem, 5vw, 4.55rem);
    line-height: 1;
    letter-spacing: -.055em;
}
.headline {
    margin: 10px 0 0;
    color: rgba(255,255,255,.76);
    font-size: 1rem;
    font-weight: 600;
}
.contact-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    margin-top: 18px;
    color: rgba(255,255,255,.68);
    font-size: .79rem;
}
.contact-list a { text-decoration: none; transition: color .2s ease; }
.contact-list a:hover { color: var(--accent); }
.contact-list > * { position: relative; }
.contact-list > *:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -14px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--accent) 55%, var(--paper));
    transform: translateY(-50%);
}

.resume-body {
    display: grid;
    grid-template-columns: minmax(250px, .31fr) minmax(0, .69fr);
    gap: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,0));
}
.sidebar {
    padding: 40px 30px 44px 48px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--matte) 4%, var(--paper)), color-mix(in srgb, var(--paper) 96%, white));
}
.experience-column {
    padding: 40px 52px 46px;
    background: linear-gradient(180deg, rgba(255,255,255,.12), transparent 38%);
}
.resume-section + .resume-section { margin-top: 34px; }
.resume-section > h2,
.print-main h3,
.print-sidebar h3 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 18px;
    color: var(--matte);
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .17em;
    text-transform: uppercase;
}
.resume-section > h2::after,
.print-main h3::after,
.print-sidebar h3::after {
    content: "";
    height: 1px;
    flex: 1;
    background: color-mix(in srgb, var(--matte) 18%, transparent);
    transform: scaleX(0);
    transform-origin: left;
    animation: lineGrow .8s cubic-bezier(.2,.8,.2,1) .55s forwards;
}
.summary-section { margin-bottom: 34px; }
.clean-list, .job ul { margin: 0; padding: 0; list-style: none; }
.clean-list li, .job li {
    position: relative;
    padding-left: 16px;
    color: var(--muted);
    font-size: .81rem;
    line-height: 1.58;
}
.clean-list li + li { margin-top: 10px; }
.clean-list li::before, .job li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .68em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--matte);
}
.skill-list li { color: color-mix(in srgb, var(--ink) 76%, transparent); }
.education-entry strong, .community-entry strong {
    display: block;
    color: var(--ink);
    font-family: "Sora", sans-serif;
    font-size: .84rem;
    line-height: 1.35;
}
.education-entry span {
    display: block;
    margin-top: 6px;
    color: var(--matte);
    font-size: .76rem;
    font-weight: 700;
}
.education-entry small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: .68rem;
}
.community-entry + .community-entry { margin-top: 18px; }
.community-entry p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: .74rem;
    line-height: 1.5;
}

.jobs { position: relative; }
.job {
    position: relative;
    padding-left: 26px;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .55s ease calc(480ms + var(--job-delay, 0ms)), transform .55s ease calc(480ms + var(--job-delay, 0ms));
}
body.is-ready .job { opacity: 1; transform: translateY(0); }
.job + .job { margin-top: 32px; }
.job::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--matte);
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--matte) 10%, transparent);
}
.job-header {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: flex-start;
    margin-bottom: 14px;
}
.job-header h3 {
    margin: 0;
    font-family: "Sora", sans-serif;
    font-size: 1.03rem;
    letter-spacing: -.02em;
}
.job-header p {
    margin: 5px 0 0;
    color: color-mix(in srgb, var(--ink) 38%, transparent);
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.job-header time {
    flex: 0 0 auto;
    padding: 7px 12px;
    border-radius: 999px;
    background: var(--soft-green);
    color: var(--matte);
    font-size: .66rem;
    font-weight: 700;
    white-space: nowrap;
}
.job li { font-size: .8rem; line-height: 1.6; }
.job li + li { margin-top: 9px; }
.job li::before {
    width: 7px;
    height: 1px;
    border-radius: 0;
    top: .78em;
}

.resume-footer {
    min-height: 54px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 0 52px;
    color: var(--muted);
    font-size: .69rem;
    background: linear-gradient(180deg, rgba(255,255,255,0), color-mix(in srgb, var(--paper) 92%, white));
}
.resume-footer button {
    border: 0;
    background: transparent;
    color: var(--matte);
    font-weight: 700;
    cursor: pointer;
}
.resume-footer button:hover { text-decoration: underline; }

.motion-item {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .62s ease var(--delay, 0ms), transform .62s cubic-bezier(.2,.8,.2,1) var(--delay, 0ms);
}
body.is-ready .motion-item { opacity: 1; transform: translateY(0); }
@keyframes lineGrow { to { transform: scaleX(1); } }

.print-sheet { display: none; }

@media (max-width: 860px) {
    .page-shell { width: min(100% - 24px, 720px); margin: 12px auto; }
    .resume-card { border-radius: 22px; }
    .resume-header { min-height: 0; padding: 88px 32px 34px; }
    .identity-copy h1 { font-size: clamp(2.1rem, 9vw, 3.5rem); }
    .contact-list > *::after { display: none; }
    .resume-body { grid-template-columns: 1fr; }
    .sidebar {
        padding: 34px 32px;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 30px;
    }
    .experience-column { padding: 34px 32px 40px; }
    .resume-section + .resume-section { margin-top: 0; }
    .resume-footer { padding: 0 32px; }
}

@media (max-width: 580px) {
    .page-shell { width: 100%; margin: 0; }
    .resume-card { border: 0; border-radius: 0; }
    .resume-header { padding: 86px 22px 30px; border-bottom-width: 3px; }
    .header-actions { top: 18px; right: 18px; }
    .eyebrow { margin-top: 2px; }
    .contact-list { display: grid; gap: 7px; }
    .sidebar {
        grid-template-columns: 1fr;
        padding: 30px 22px;
        gap: 32px;
    }
    .experience-column { padding: 30px 22px 36px; }
    .job { padding-left: 19px; }
    .job::before { top: 9px; width: 7px; height: 7px; }
    .job-header { flex-direction: column; gap: 9px; }
    .job-header time { align-self: flex-start; }
    .resume-footer { padding: 0 22px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
    .motion-item, .job { opacity: 1 !important; transform: none !important; }
}

@page { size: Letter; margin: 0; }
@media print {
    html, body {
        width: 8.5in;
        height: 11in;
        margin: 0 !important;
        padding: 0 !important;
        background: white !important;
    }
    body > *:not(.print-sheet) { display: none !important; }
    .print-sheet {
        display: block !important;
        width: 8.5in;
        height: 11in;
        overflow: hidden;
        background: linear-gradient(180deg, color-mix(in srgb, var(--paper) 97%, white), var(--paper)) !important;
        color: var(--ink) !important;
        font-family: "Manrope", Arial, sans-serif;
        font-weight: 500;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .print-header {
        height: 1.78in;
        display: flex;
        align-items: center;
        padding: .25in .38in .22in;
        border-bottom: .04in solid var(--matte);
        background: linear-gradient(135deg, var(--dark), var(--dark-alt), var(--matte)) !important;
        color: var(--paper) !important;
    }
    .print-identity > p {
        margin: 0 0 .04in;
        color: var(--accent) !important;
        font-size: 6pt;
        font-weight: 700;
        letter-spacing: .15em;
    }
    .print-identity h1 {
        margin: 0;
        font-family: "Sora", Arial, sans-serif;
        font-size: 24pt;
        line-height: 1;
        letter-spacing: -.045em;
    }
    .print-identity h2 {
        margin: .05in 0 .085in;
        color: rgba(255,255,255,.74) !important;
        font-size: 9pt;
    }
    .print-contact {
        display: flex;
        flex-wrap: wrap;
        gap: .03in .11in;
        color: rgba(255,255,255,.68) !important;
        font-size: 6.05pt;
    }
    .print-contact span:not(:last-child)::after {
        content: "•";
        margin-left: .11in;
        color: color-mix(in srgb, var(--accent) 58%, var(--paper)) !important;
    }
    .print-body {
        height: 9.22in;
        display: grid;
        grid-template-columns: 2.34in 1fr;
    }
    .print-sidebar {
        padding: .23in .22in .2in .38in;
        background: color-mix(in srgb, var(--matte) 4%, var(--paper)) !important;
    }
    .print-main {
        padding: .23in .38in .2in .26in;
    }
    .print-sidebar section + section { margin-top: .16in; }
    .print-main section + section { margin-top: .18in; }
    .print-sidebar ul,
    .print-main ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }
    .print-sidebar li,
    .print-main li {
        position: relative;
        padding-left: .095in;
        color: color-mix(in srgb, var(--ink) 69%, transparent);
        font-size: 6.15pt;
        line-height: 1.29;
    }
    .print-sidebar li + li,
    .print-main li + li { margin-top: .04in; }
    .print-sidebar li::before,
    .print-summary li::before {
        content: "";
        position: absolute;
        left: 0;
        top: .058in;
        width: .035in;
        height: .035in;
        border-radius: 50%;
        background: var(--matte) !important;
    }
    .print-sidebar strong {
        display: block;
        font-family: "Sora", Arial, sans-serif;
        font-size: 6.8pt;
        line-height: 1.28;
    }
    .print-sidebar span {
        display: block;
        margin-top: .027in;
        color: var(--matte) !important;
        font-size: 6pt;
        font-weight: 700;
    }
    .print-sidebar small {
        display: block;
        margin-top: .02in;
        color: color-mix(in srgb, var(--ink) 57%, transparent);
        font-size: 5.65pt;
    }
    .print-community + .print-community { margin-top: .07in; }
    .print-community p {
        margin: .025in 0 0;
        color: color-mix(in srgb, var(--ink) 63%, transparent);
        font-size: 5.85pt;
        line-height: 1.25;
    }
    .print-experience article + article { margin-top: .2in; }
    .print-experience article {
        position: relative;
        padding-left: .12in;
    }
    .print-experience article::before {
        content: "";
        position: absolute;
        left: 0;
        top: .02in;
        width: .045in;
        height: .045in;
        border-radius: 50%;
        background: var(--matte) !important;
        box-shadow: 0 0 0 .03in color-mix(in srgb, var(--matte) 10%, transparent);
    }
    .print-experience article header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: .12in;
        margin-bottom: .08in;
    }
    .print-experience article header div {
        display: flex;
        flex-direction: column;
    }
    .print-experience article header strong {
        font-family: "Sora", Arial, sans-serif;
        font-size: 8.45pt;
    }
    .print-experience article header span {
        margin-top: .022in;
        color: color-mix(in srgb, var(--ink) 40%, transparent);
        font-size: 5.8pt;
        font-weight: 700;
        letter-spacing: .07em;
        text-transform: uppercase;
    }
    .print-experience article header time {
        padding: .035in .075in;
        border-radius: 999px;
        background: color-mix(in srgb, var(--matte) 10%, var(--paper)) !important;
        color: var(--matte) !important;
        font-size: 5.7pt;
        font-weight: 700;
        white-space: nowrap;
    }
    .print-experience li {
        padding-left: .11in;
        font-size: 6.2pt;
        line-height: 1.29;
    }
    .print-experience li::before {
        content: "";
        position: absolute;
        left: 0;
        top: .074in;
        width: .06in;
        height: .014in;
        border-radius: 0;
        background: var(--matte) !important;
    }
}

/* Final simplified visual overrides */
body {
    background: #e9efe9;
}
.resume-header {
    background: linear-gradient(135deg, var(--dark) 0%, var(--dark-alt) 52%, var(--matte) 100%);
}
.resume-header::before,
.resume-header::after {
    content: none !important;
    display: none !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
}
.job {
    padding-left: 0 !important;
}
.job::before,
.jobs::before,
.jobs::after {
    content: none !important;
    display: none !important;
    box-shadow: none !important;
}
.job + .job {
    margin-top: 32px;
    padding-top: 0 !important;
    border-top: 0 !important;
}
.text-size-normal { font-size: 1em; }
.text-size-sm { font-size: .85em; }
.text-size-lg { font-size: 1.16em; }
.text-size-xl { font-size: 1.34em; }

@media print {
    .print-experience article {
        padding-left: 0 !important;
    }
    .print-experience article::before {
        content: none !important;
        display: none !important;
        box-shadow: none !important;
    }
    .print-experience article + article {
        padding-top: 0 !important;
        border-top: 0 !important;
    }
}

/* Layout pass: rely on the base margin rules for spacing (no extra flex gap stacked on top) */
@media (min-width: 861px) {
    .resume-section > h2 {
        margin-bottom: 20px;
    }
    .clean-list li,
    .job li {
        line-height: 1.66;
    }
    .job-header {
        margin-bottom: 16px;
    }
}

/* V5 — larger type, fuller page usage, unified typography, and clean motion */
html,
body,
button,
a,
input,
textarea,
select,
.resume-card,
.resume-card *,
.print-sheet,
.print-sheet * {
    font-family: "Manrope", Arial, sans-serif !important;
}

/* Website sizing and spacing (desktop only — mobile has its own rules above) */
@media (min-width: 861px) {
    .resume-header {
        min-height: 250px;
        padding-top: 48px;
        padding-bottom: 44px;
        background-size: 180% 180%;
        animation: headerGradient 12s ease-in-out infinite alternate;
    }
    .identity-copy h1 {
        font-size: clamp(2.75rem, 5.2vw, 4.9rem);
        letter-spacing: -.05em;
    }
    .headline { font-size: 1.08rem; }
    .contact-list { font-size: .86rem; }

    .resume-body {
        grid-template-columns: minmax(280px, .32fr) minmax(0, .68fr);
    }
    .sidebar {
        padding: 50px 38px 54px 54px;
    }
    .experience-column {
        padding: 50px 58px 56px;
    }
    .resume-section > h2 {
        margin-bottom: 23px;
        font-size: .79rem;
    }
    .clean-list li,
    .job li {
        font-size: .92rem;
        line-height: 1.72;
    }
    .clean-list li + li,
    .job li + li {
        margin-top: 12px;
    }
    .education-entry strong,
    .community-entry strong {
        font-size: .98rem;
    }
    .education-entry span { font-size: .86rem; }
    .education-entry small { font-size: .76rem; }
    .community-entry p {
        font-size: .84rem;
        line-height: 1.62;
    }
    .job-header h3 { font-size: 1.2rem; }
    .job-header p { font-size: .77rem; }
    .job-header time {
        padding: 8px 14px;
        font-size: .75rem;
    }
    .job + .job { margin-top: 48px !important; }
    .summary-section { margin-bottom: 48px; }
    .resume-footer { min-height: 64px; font-size: .78rem; }
}


.resume-card {
    opacity: 0;
    transform: translateY(20px) scale(.992);
    transition: opacity .7s ease, transform .8s cubic-bezier(.2,.8,.2,1);
}
body.is-ready .resume-card {
    opacity: 1;
    transform: translateY(0) scale(1);
}
body.is-ready .resume-section > h2 {
    animation: headingDrift .65s cubic-bezier(.2,.8,.2,1) both;
}
body.is-ready .clean-list li,
body.is-ready .job li,
body.is-ready .education-entry,
body.is-ready .community-entry {
    opacity: 0;
    transform: translateY(8px);
    animation: itemRise .52s ease forwards;
}
body.is-ready .clean-list li:nth-child(1),
body.is-ready .job li:nth-child(1) { animation-delay: .48s; }
body.is-ready .clean-list li:nth-child(2),
body.is-ready .job li:nth-child(2) { animation-delay: .56s; }
body.is-ready .clean-list li:nth-child(3),
body.is-ready .job li:nth-child(3) { animation-delay: .64s; }
body.is-ready .clean-list li:nth-child(4),
body.is-ready .job li:nth-child(4) { animation-delay: .72s; }
body.is-ready .job li:nth-child(5) { animation-delay: .8s; }
body.is-ready .education-entry,
body.is-ready .community-entry { animation-delay: .56s; }
.icon-button:hover,
.export-button:hover {
    transform: translateY(-3px) scale(1.025);
    box-shadow: 0 10px 24px rgba(0,0,0,.16);
}
.job-header time {
    transition: transform .25s ease, background .25s ease;
}
.job:hover .job-header time {
    transform: translateY(-2px);
    background: color-mix(in srgb, var(--matte) 17%, var(--paper));
}
@keyframes headerGradient {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}
@keyframes headingDrift {
    from { opacity: 0; transform: translateX(-10px); }
    to { opacity: 1; transform: translateX(0); }
}
@keyframes itemRise {
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 860px) {
    .resume-header { min-height: 0; }
    .sidebar,
    .experience-column { padding: 40px 34px 46px; }
    .clean-list li,
    .job li { font-size: .9rem; }
}

@media (max-width: 580px) {
    .identity-copy h1 { font-size: clamp(2.35rem, 12vw, 3.4rem); }
    .resume-section > h2 { font-size: .75rem; }
    .clean-list li,
    .job li { font-size: .92rem; }
}

/* Print/PDF: larger type and intentionally distributed content */
@media print {
    .print-header {
        height: 1.95in;
        display: flex;
        align-items: center;
        padding: .3in .43in .26in;
    }
    .print-identity > p { font-size: 7pt; }
    .print-identity h1 { font-size: 28pt; }
    .print-identity h2 { font-size: 10.6pt; }
    .print-contact { font-size: 7.1pt; }

    .print-body {
        height: auto;
        min-height: 9.05in;
        grid-template-columns: 2.48in 1fr;
    }
    .print-sidebar {
        padding: .34in .27in .3in .43in;
    }
    .print-main {
        padding: .34in .43in .3in .34in;
    }
    .print-sidebar section + section { margin-top: .36in; }
    .print-main section + section { margin-top: .36in; }
    .print-main h3,
    .print-sidebar h3 {
        margin-bottom: .15in;
        font-size: 8.6pt;
        letter-spacing: .145em;
    }
    .print-sidebar li,
    .print-main li {
        padding-left: .09in;
        font-size: 8.3pt;
        line-height: 1.55;
    }
    .print-sidebar li + li,
    .print-main li + li { margin-top: .08in; }
    .print-sidebar strong { font-size: 9pt; line-height: 1.4; }
    .print-sidebar span { font-size: 7.8pt; }
    .print-sidebar small { font-size: 7.1pt; }
    .print-community + .print-community { margin-top: .17in; }
    .print-community p {
        font-size: 7.8pt;
        line-height: 1.5;
    }
    .print-experience article + article { margin-top: .36in; }
    .print-experience article header {
        margin-bottom: .13in;
    }
    .print-experience article header strong { font-size: 11pt; }
    .print-experience article header span { font-size: 7.4pt; }
    .print-experience article header time {
        padding: .05in .1in;
        font-size: 7.1pt;
    }
    .print-experience li {
        padding-left: .1in;
        font-size: 8.3pt;
        line-height: 1.55;
    }
    .print-experience li + li { margin-top: .08in; }

    .print-sheet,
    .print-sheet * {
        animation: none !important;
        transition: none !important;
    }
}

/* ==========================================================================
   Boot sequence — name only, clean fade into the resume. Plays once on
   load. Pure CSS timeline, no JS required.
   ========================================================================== */
.boot-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, var(--dark) 0%, var(--dark-alt) 100%);
    animation: bootExit .7s ease 1.6s forwards;
}
.boot-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px;
    text-align: center;
}
.boot-name {
    margin: 0;
    font-family: "Sora", sans-serif;
    font-weight: 600;
    font-size: clamp(2rem, 6vw, 3rem);
    color: var(--paper);
    opacity: 0;
    transform: translateY(6px);
    animation: bootFadeIn .7s ease .15s forwards;
}

@keyframes bootFadeIn {
    to { opacity: 1; transform: none; }
}
@keyframes bootExit {
    to { opacity: 0; visibility: hidden; }
}

@media (prefers-reduced-motion: reduce) {
    .boot-overlay { display: none !important; }
}
@media print {
    .boot-overlay { display: none !important; }
}