:root {
    color-scheme: light;
    --night: #10172f;
    --night-soft: #1a2447;
    --violet: #6e52d8;
    --cyan: #22c7e6;
    --paper: #f7f4ef;
    --paper-deep: #ece7df;
    --white: #fff;
    --ink: #202638;
    --muted: #626a7d;
    --line: rgba(16, 23, 47, .12);
    --shadow: 0 22px 60px rgba(16, 23, 47, .10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
.container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.eyebrow {
    margin: 0 0 18px;
    color: var(--violet);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
h1, h2, h3, p { margin-top: 0; }

.hero, .resource-hero, .category-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 88% 20%, rgba(34, 199, 230, .24), transparent 23rem),
        radial-gradient(circle at 68% 75%, rgba(110, 82, 216, .38), transparent 29rem),
        var(--night);
    color: var(--white);
}
.hero { min-height: 690px; display: flex; align-items: center; }
.hero::after {
    position: absolute;
    inset: 0;
    pointer-events: none;
    content: "";
    opacity: .28;
    background-image: linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px);
    background-size: 56px 56px;
    mask-image: linear-gradient(to right, black, transparent 82%);
}
.hero__content, .resource-hero__content, .category-hero__content { position: relative; z-index: 1; }
.hero__content { padding: 112px 0; }
.hero .eyebrow, .resource-hero .eyebrow, .category-hero .eyebrow { color: var(--cyan); }
h1 {
    max-width: 850px;
    margin-bottom: 28px;
    color: var(--white);
    font-size: clamp(3rem, 6.5vw, 6.5rem);
    font-weight: 750;
    letter-spacing: -.065em;
    line-height: .94;
}
h1 span { color: #c9c0ff; }
.hero__lead, .resource-hero__content > p:not(.resource-hero__author), .category-hero__content > p:not(.category-hero__count) {
    max-width: 680px;
    margin-bottom: 34px;
    color: rgba(255, 255, 255, .78);
    font-size: clamp(1.08rem, 2vw, 1.34rem);
    line-height: 1.6;
}
.hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: .95rem;
    font-weight: 750;
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.button:hover { transform: translateY(-2px); }
.button--primary { background: var(--cyan); color: var(--night); }
.button--primary:hover { background: #7eeafa; }
.button--secondary { border-color: rgba(255, 255, 255, .30); color: var(--white); }
.button--secondary:hover { border-color: rgba(255, 255, 255, .7); background: rgba(255, 255, 255, .08); }
.button--dark { background: var(--night); color: var(--white); }
.hero__note { margin: 28px 0 0; color: rgba(255, 255, 255, .55); font-size: .86rem; }

.section { padding: 120px 0; }
.section--soft { background: var(--paper-deep); }
.section-heading { max-width: 690px; margin-bottom: 52px; }
.section-heading h2, .promise h2, .empty-state h2 {
    margin-bottom: 18px;
    color: var(--night);
    font-size: clamp(2.15rem, 4vw, 4rem);
    letter-spacing: -.05em;
    line-height: 1.04;
}
.section-heading > p:not(.eyebrow) { margin-bottom: 0; color: var(--muted); font-size: 1.08rem; line-height: 1.65; }
.section-heading--inline { max-width: none; display: flex; align-items: end; justify-content: space-between; gap: 36px; }
.section-heading--inline > p { max-width: 320px; }
.path-grid, .resource-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.path-card, .resource-card {
    position: relative;
    min-height: 255px;
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--white);
    box-shadow: 0 5px 18px rgba(16, 23, 47, .035);
    transition: transform .2s ease, box-shadow .2s ease;
}
.path-card { display: block; }
.path-card:hover, .resource-card:hover, .category-resource:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.path-card__count, .resource-card__meta {
    margin-bottom: 42px;
    color: var(--violet);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.path-card h3, .resource-card h3, .category-resource h3 { margin-bottom: 12px; color: var(--night); font-size: 1.28rem; letter-spacing: -.025em; line-height: 1.2; }
.path-card p:not(.path-card__count), .resource-card > p:not(.resource-card__footer), .category-resource p { margin-bottom: 0; color: var(--muted); font-size: .95rem; line-height: 1.58; }
.path-card__arrow { position: absolute; right: 25px; bottom: 22px; color: var(--cyan); font-size: 1.65rem; }
.resource-grid { grid-template-columns: repeat(3, 1fr); }
.resource-card { min-height: 300px; }
.resource-card__meta { display: flex; justify-content: space-between; margin-bottom: 32px; }
.resource-card__footer { position: absolute; right: 28px; bottom: 24px; left: 28px; display: flex; gap: 7px; margin: 0; color: var(--muted); font-size: .8rem; }
.resource-card h3 a { transition: color .18s ease; }
.resource-card h3 a:hover { color: var(--violet); }
.promise { padding: 110px 0; background: var(--white); }
.promise__content { max-width: 760px; }
.promise__content > p:not(.eyebrow) { max-width: 650px; margin-bottom: 0; color: var(--muted); font-size: 1.1rem; line-height: 1.65; }

.back-link { display: inline-flex; margin-bottom: 56px; color: rgba(255, 255, 255, .72); font-size: .92rem; font-weight: 700; transition: color .18s ease; }
.back-link:hover { color: var(--cyan); }
.resource-hero { padding: 80px 0 96px; }
.resource-hero__content { max-width: 880px; }
.resource-hero__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-bottom: 20px; color: var(--cyan); font-size: .78rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.resource-hero h1 { max-width: 860px; font-size: clamp(2.7rem, 6vw, 5.7rem); }
.resource-hero__author { margin: 0; color: rgba(255, 255, 255, .55); font-size: .88rem; }
.resource-body-section { padding: 92px 24px 120px; background: var(--paper); }
.resource-body { width: min(720px, 100%); margin: 0 auto; color: var(--ink); font-size: 1.08rem; line-height: 1.78; }
.resource-body h1, .resource-body h2 { margin: 54px 0 18px; color: var(--night); font-size: clamp(1.7rem, 3vw, 2.45rem); letter-spacing: -.04em; line-height: 1.12; }
.resource-body h1:first-child { display: none; }
.resource-body p { margin-bottom: 22px; }
.resource-body ul { margin: 0 0 28px; padding-left: 24px; }
.resource-body li { margin: 10px 0; padding-left: 5px; }
.vigilance { margin-top: 52px; padding: 26px 28px; border: 1px solid rgba(34, 199, 230, .35); border-radius: 18px; background: #eafbfe; }
.vigilance__label { margin-bottom: 9px !important; color: var(--night); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.vigilance p:last-child { margin-bottom: 0; color: var(--ink); }

.category-hero { padding: 80px 0 92px; }
.category-hero__content { max-width: 900px; }
.category-hero h1 { max-width: 800px; font-size: clamp(2.8rem, 6vw, 5.8rem); }
.category-hero__count { margin: 0 !important; color: var(--cyan) !important; font-size: .84rem !important; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.category-content { min-height: 520px; padding: 100px 0 120px; }
.category-resource-list { display: grid; gap: 14px; }
.category-resource { display: grid; grid-template-columns: 175px 1fr auto; gap: 24px; align-items: center; padding: 28px 30px; border: 1px solid var(--line); border-radius: 20px; background: var(--white); transition: transform .2s ease, box-shadow .2s ease; }
.category-resource__meta { display: grid; gap: 7px; color: var(--violet); font-size: .76rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.category-resource h3 { margin-bottom: 8px; }
.category-resource__footer { display: flex; align-items: center; gap: 18px; color: var(--muted); font-size: .85rem; white-space: nowrap; }
.category-resource__footer span:last-child { color: var(--cyan); font-size: 1.6rem; }
.empty-state { max-width: 680px; padding: 50px; border: 1px solid var(--line); border-radius: 24px; background: var(--white); }
.empty-state > p:not(.eyebrow) { max-width: 550px; margin-bottom: 28px; color: var(--muted); line-height: 1.6; }

.start-hero {
    padding: 80px 0 100px;
    background:
        radial-gradient(circle at 86% 18%, rgba(34, 199, 230, .22), transparent 24rem),
        radial-gradient(circle at 58% 92%, rgba(110, 82, 216, .34), transparent 30rem),
        var(--night);
    color: var(--white);
}
.start-hero__content { max-width: 970px; }
.start-hero .eyebrow { color: var(--cyan); }
.start-hero h1 { max-width: 930px; font-size: clamp(2.8rem, 6vw, 6rem); }
.start-hero__content > p:not(.eyebrow) { max-width: 700px; margin-bottom: 34px; color: rgba(255, 255, 255, .78); font-size: clamp(1.08rem, 2vw, 1.32rem); line-height: 1.65; }
.start-section { padding: 100px 0; background: var(--white); }
.start-intro { max-width: 780px; }
.start-intro h2, .first-step h2, .start-next h2 { margin-bottom: 20px; color: var(--night); font-size: clamp(2.1rem, 4vw, 4rem); letter-spacing: -.05em; line-height: 1.05; }
.start-intro > p:not(.eyebrow), .first-step > div > p:not(.eyebrow) { max-width: 720px; margin-bottom: 0; color: var(--muted); font-size: 1.1rem; line-height: 1.7; }
.start-principles-section { padding: 110px 0; background: var(--paper); }
.principle-list { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.principle-list li { display: grid; grid-template-columns: 120px 1fr; gap: 28px; padding: 29px 0; border-bottom: 1px solid var(--line); }
.principle-list li > span { color: var(--violet); font-size: .83rem; font-weight: 850; letter-spacing: .08em; }
.principle-list h3 { margin-bottom: 8px; color: var(--night); font-size: 1.25rem; letter-spacing: -.025em; }
.principle-list p { max-width: 700px; margin-bottom: 0; color: var(--muted); line-height: 1.6; }
.start-section--soft { background: var(--paper-deep); }
.first-step { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: 70px; align-items: center; }
.first-step__card { padding: 32px; border-radius: 22px; background: var(--night); color: var(--white); box-shadow: var(--shadow); }
.first-step__card p { margin-bottom: 10px; color: rgba(255, 255, 255, .58); font-size: .9rem; }
.first-step__card strong { display: block; margin-bottom: 24px; color: #d7d0ff; font-size: 1.14rem; letter-spacing: -.02em; line-height: 1.38; }
.first-step__card strong:last-child { margin-bottom: 0; color: var(--cyan); }
.start-next { padding: 110px 0; background: var(--white); }
.start-next__content { max-width: 770px; }

@media (max-width: 720px) {
    .start-hero { padding: 52px 0 74px; }
    .start-section, .start-principles-section, .start-next { padding: 76px 0; }
    .principle-list li { grid-template-columns: 1fr; gap: 10px; }
    .first-step { grid-template-columns: 1fr; gap: 34px; }
}

.admin-body { min-height: 100vh; background: var(--paper); }
.admin-login-shell { min-height: 100vh; display: grid; place-items: center; padding: 32px 20px; background: radial-gradient(circle at 80% 15%, rgba(34, 199, 230, .18), transparent 22rem), var(--night); }
.admin-login-card { width: min(100%, 450px); padding: 42px; border: 1px solid rgba(255, 255, 255, .13); border-radius: 24px; background: rgba(16, 23, 47, .78); color: var(--white); box-shadow: 0 24px 80px rgba(0, 0, 0, .28); }
.admin-brand { display: inline-block; margin-bottom: 40px; color: var(--white); font-size: 1.05rem; font-weight: 850; letter-spacing: .08em; }
.admin-brand span { color: var(--cyan); }
.admin-login-card .eyebrow { color: var(--cyan); }
.admin-login-card h1 { margin-bottom: 14px; font-size: 2.7rem; }
.admin-login-card__lead { margin-bottom: 26px; color: rgba(255, 255, 255, .67); line-height: 1.6; }
.admin-form { display: grid; gap: 10px; }
.admin-form label { margin-top: 10px; color: rgba(255, 255, 255, .85); font-size: .9rem; font-weight: 700; }
.admin-form input { width: 100%; min-height: 48px; padding: 0 13px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 10px; background: rgba(255, 255, 255, .96); color: var(--night); font: inherit; }
.admin-form input:focus { outline: 3px solid rgba(34, 199, 230, .55); outline-offset: 2px; }
.admin-form .button { width: 100%; margin-top: 18px; }
.admin-message { margin: 0 0 20px; padding: 12px 14px; border-radius: 10px; font-size: .9rem; line-height: 1.45; }
.admin-message--error { border: 1px solid rgba(255, 165, 165, .6); background: rgba(160, 32, 32, .25); color: #ffd6d6; }
.admin-dashboard { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 26px 0 90px; }
.admin-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.admin-header .admin-brand { margin: 0; color: var(--night); }
.admin-header__actions { display: flex; align-items: center; gap: 17px; color: var(--muted); font-size: .86rem; }
.admin-logout { padding: 0; border: 0; background: transparent; color: var(--violet); font: inherit; font-weight: 750; cursor: pointer; }
.admin-dashboard__hero { max-width: 740px; padding: 90px 0 54px; }
.admin-dashboard__hero h1 { color: var(--night); font-size: clamp(2.7rem, 5vw, 5.2rem); }
.admin-dashboard__hero p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 1.13rem; line-height: 1.65; }
.admin-roadmap { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.admin-roadmap__item { min-height: 220px; padding: 26px; border: 1px solid var(--line); border-radius: 20px; background: var(--white); }
.admin-roadmap__item > span { display: block; margin-bottom: 42px; color: var(--muted); font-size: .78rem; font-weight: 850; letter-spacing: .08em; }
.admin-roadmap__item h2 { margin-bottom: 9px; color: var(--night); font-size: 1.2rem; letter-spacing: -.025em; }
.admin-roadmap__item p { margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.55; }
.admin-roadmap__item--done { border-color: rgba(34, 199, 230, .5); background: #eafbfe; }
.admin-roadmap__item--done > span { color: var(--violet); }

@media (max-width: 760px) {
    .admin-dashboard { width: min(100% - 32px, 1180px); }
    .admin-header { align-items: flex-start; flex-direction: column; }
    .admin-header__actions { align-items: flex-start; flex-direction: column; gap: 8px; }
    .admin-roadmap { grid-template-columns: 1fr; }
    .admin-login-card { padding: 32px 24px; }
}

.admin-dashboard__hero--compact { max-width: none; display: flex; align-items: end; justify-content: space-between; gap: 28px; padding: 68px 0 42px; }
.admin-dashboard__hero--compact > div { max-width: 700px; }
.admin-dashboard__hero--compact .button { flex: 0 0 auto; }
.admin-resources { padding-top: 18px; }
.admin-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.admin-section-heading h2 { margin: 0; color: var(--night); font-size: 1.35rem; letter-spacing: -.03em; }
.admin-section-heading > span { color: var(--muted); font-size: .85rem; }
.admin-resource-table { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: var(--white); }
.admin-resource-table__head, .admin-resource-row { display: grid; grid-template-columns: minmax(260px, 1.45fr) minmax(160px, .9fr) 110px 90px; gap: 20px; align-items: center; padding: 19px 22px; }
.admin-resource-table__head { border-bottom: 1px solid var(--line); background: #f4f2ef; color: var(--muted); font-size: .74rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.admin-resource-row + .admin-resource-row { border-top: 1px solid var(--line); }
.admin-resource-row strong { display: block; color: var(--night); font-size: .96rem; }
.admin-resource-row small { display: block; margin-top: 5px; color: var(--muted); font-size: .78rem; }
.admin-resource-row__categories { color: var(--muted); font-size: .86rem; line-height: 1.45; }
.admin-status { display: inline-flex; width: fit-content; padding: 5px 9px; border-radius: 999px; font-size: .75rem; font-weight: 800; }
.admin-status--published { background: #e6f9ef; color: #17643c; }
.admin-status--draft { background: #f0edf9; color: #594098; }
.admin-edit-link, .admin-back { color: var(--violet); font-size: .88rem; font-weight: 750; }
.admin-empty { max-width: 620px; padding: 40px; border: 1px solid var(--line); border-radius: 20px; background: var(--white); }
.admin-empty h2 { margin-bottom: 10px; color: var(--night); font-size: 1.45rem; }
.admin-empty p { margin-bottom: 24px; color: var(--muted); line-height: 1.6; }
.admin-editor { padding-bottom: 110px; }
.admin-editor__intro { max-width: 820px; padding: 66px 0 35px; }
.admin-editor__intro h1 { color: var(--night); font-size: clamp(2.5rem, 5vw, 5.1rem); }
.admin-editor__intro p:not(.eyebrow) { max-width: 700px; margin: 0; color: var(--muted); line-height: 1.65; }
.admin-message--success { border: 1px solid #99dec1; background: #e8faef; color: #135b34; }
.admin-message ul { margin: 9px 0 0; padding-left: 20px; }
.admin-resource-form { margin-top: 26px; padding: 32px; border: 1px solid var(--line); border-radius: 22px; background: var(--white); }
.admin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.admin-field { display: grid; gap: 8px; }
.admin-field--wide { grid-column: 1 / -1; }
.admin-field label { color: var(--night); font-size: .9rem; font-weight: 800; }
.admin-field input, .admin-field select, .admin-field textarea { width: 100%; min-height: 46px; padding: 11px 13px; border: 1px solid #c8c5c1; border-radius: 10px; background: var(--white); color: var(--ink); font: inherit; }
.admin-field textarea { min-height: auto; resize: vertical; line-height: 1.55; }
.admin-field input:focus, .admin-field select:focus, .admin-field textarea:focus { outline: 3px solid rgba(34, 199, 230, .35); outline-offset: 1px; border-color: var(--cyan); }
.admin-field small { color: var(--muted); font-size: .78rem; line-height: 1.45; }
.admin-field code { padding: 1px 4px; border-radius: 4px; background: #f0edef; color: var(--night); }
.admin-checkboxes { display: flex; flex-wrap: wrap; gap: 10px; }
.admin-checkboxes label { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); font-size: .87rem; font-weight: 650; }
.admin-checkboxes input { width: 16px; min-height: 16px; margin: 0; accent-color: var(--violet); }
.admin-editor__actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 30px; }
.admin-button-secondary { border-color: var(--line); background: var(--white); color: var(--night); }

@media (max-width: 820px) {
    .admin-dashboard__hero--compact { align-items: flex-start; flex-direction: column; }
    .admin-resource-table { overflow-x: auto; }
    .admin-resource-table__head, .admin-resource-row { min-width: 720px; }
}

@media (max-width: 600px) {
    .admin-form-grid { grid-template-columns: 1fr; }
    .admin-resource-form { padding: 24px 18px; }
    .admin-editor__actions { align-items: stretch; flex-direction: column-reverse; }
    .admin-editor__actions .button { width: 100%; }
}

/* VIFLY IA — Editorial Studio */
.studio-body, .studio-login-body {
    min-height: 100vh;
    background: #f4f5f9;
    color: #18203b;
}
.studio-shell { min-height: 100vh; display: grid; grid-template-columns: 254px minmax(0, 1fr); }
.studio-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    padding: 34px 22px 26px;
    overflow: hidden;
    background:
        radial-gradient(circle at 18% 4%, rgba(37, 207, 234, .26), transparent 11rem),
        radial-gradient(circle at 92% 82%, rgba(122, 87, 221, .42), transparent 17rem),
        #101831;
    color: #fff;
}
.studio-sidebar::after { position: absolute; inset: 0; pointer-events: none; content: ""; opacity: .14; background-image: linear-gradient(rgba(255,255,255,.22) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.22) 1px, transparent 1px); background-size: 44px 44px; }
.studio-sidebar > * { position: relative; z-index: 1; }
.studio-wordmark { color: #fff; font-size: 1.05rem; font-weight: 900; letter-spacing: .11em; }
.studio-wordmark span { color: #3fe0f6; }
.studio-sidebar__label { margin: 72px 0 12px; color: rgba(255,255,255,.45); font-size: .7rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.studio-nav { display: grid; gap: 7px; }
.studio-nav__item { display: flex; align-items: center; gap: 11px; min-height: 46px; padding: 0 13px; border-radius: 12px; color: rgba(255,255,255,.64); font-size: .9rem; font-weight: 700; transition: background .18s ease, color .18s ease; }
.studio-nav__item span { display: grid; width: 21px; place-items: center; color: #61dff2; font-size: 1rem; }
.studio-nav__item:hover, .studio-nav__item--active { background: rgba(255,255,255,.11); color: #fff; }
.studio-sidebar__footer { margin-top: auto; padding: 17px; border: 1px solid rgba(255,255,255,.12); border-radius: 15px; background: rgba(0,0,0,.13); color: rgba(255,255,255,.61); font-size: .76rem; line-height: 1.55; }
.studio-security-dot { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 999px; background: #5ce9ac; box-shadow: 0 0 0 4px rgba(92,233,172,.12); }
.studio-main { min-width: 0; padding: 0 58px 80px; }
.studio-topbar { display: flex; min-height: 92px; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid rgba(24,32,59,.08); }
.studio-topbar p { margin: 0 0 3px; color: #1d2541; font-size: .88rem; font-weight: 800; }
.studio-topbar span { color: #81899d; font-size: .82rem; }
.studio-signout { padding: 8px 0; border: 0; background: transparent; color: #747e98; font: inherit; font-size: .82rem; font-weight: 750; cursor: pointer; }
.studio-signout:hover { color: #6e52d8; }
.studio-hero-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 40px; min-height: 305px; margin: 42px 0 22px; padding: 45px 48px; overflow: hidden; border-radius: 28px; background: linear-gradient(120deg, #1d2750, #29205e 58%, #1a6080); color: #fff; box-shadow: 0 20px 60px rgba(31,42,85,.21); }
.studio-hero-card::before { position: absolute; inset: 0; content: ""; opacity: .28; background-image: radial-gradient(circle at 83% 21%, #79efff 0 2px, transparent 3px), radial-gradient(circle at 91% 54%, #b39bff 0 3px, transparent 4px), radial-gradient(circle at 63% 89%, #4be6f7 0 1px, transparent 2px); background-size: 110px 110px, 160px 160px, 90px 90px; }
.studio-hero-card > * { position: relative; z-index: 1; }
.studio-hero-card .eyebrow { color: #72eaf8; }
.studio-hero-card h1 { max-width: 720px; margin-bottom: 16px; color: #fff; font-size: clamp(2.25rem, 4vw, 4.25rem); letter-spacing: -.06em; line-height: .98; }
.studio-hero-card p:not(.eyebrow) { max-width: 620px; margin-bottom: 26px; color: rgba(255,255,255,.71); line-height: 1.6; }
.studio-primary-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 18px; padding: 0 20px; border: 0; border-radius: 12px; background: #62e5f5; color: #10203b; font: inherit; font-size: .9rem; font-weight: 850; box-shadow: 0 10px 24px rgba(40,219,240,.21); cursor: pointer; transition: transform .18s ease, background .18s ease; }
.studio-primary-button:hover { transform: translateY(-2px); background: #a4f6ff; }
.studio-primary-button span { font-size: 1.2rem; line-height: 1; }
.studio-hero-card__orb { display: grid; width: 190px; height: 190px; place-items: center; align-self: center; justify-self: end; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: radial-gradient(circle at 37% 32%, rgba(255,255,255,.77), rgba(92,229,245,.28) 28%, rgba(133,93,228,.28) 64%, transparent 65%); box-shadow: inset 0 0 35px rgba(255,255,255,.3), 0 0 70px rgba(90,223,245,.32); }
.studio-hero-card__orb span { color: rgba(255,255,255,.94); font-size: 2.8rem; font-weight: 850; letter-spacing: -.08em; }
.studio-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.studio-metrics article { min-height: 138px; padding: 24px; border: 1px solid rgba(24,32,59,.08); border-radius: 18px; background: rgba(255,255,255,.8); box-shadow: 0 6px 18px rgba(31,42,85,.035); }
.studio-metrics__label { display: block; margin-bottom: 15px; color: #81899d; font-size: .72rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.studio-metrics strong { display: block; margin-bottom: 3px; color: #172049; font-size: 2rem; letter-spacing: -.06em; }
.studio-metrics p { margin: 0; color: #7f879b; font-size: .8rem; }
.studio-library { margin-top: 56px; }
.studio-section-title { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.studio-section-title .eyebrow { margin-bottom: 8px; }
.studio-section-title h2 { margin: 0; color: #18203b; font-size: 1.65rem; letter-spacing: -.045em; }
.studio-section-title > a { color: #6652cb; font-size: .86rem; font-weight: 800; }
.studio-section-title > a span { padding-left: 4px; font-size: 1.1rem; }
.studio-resource-list { overflow: hidden; border: 1px solid rgba(24,32,59,.09); border-radius: 20px; background: #fff; box-shadow: 0 12px 40px rgba(28,36,75,.05); }
.studio-resource-item { display: grid; grid-template-columns: 38px minmax(0, 1fr) 94px 22px; gap: 14px; align-items: center; min-height: 94px; padding: 17px 24px; transition: background .18s ease; }
.studio-resource-item + .studio-resource-item { border-top: 1px solid rgba(24,32,59,.08); }
.studio-resource-item:hover { background: #fafaff; }
.studio-resource-item__type { color: #7160ce; font-size: 1.4rem; }
.studio-resource-item__content > span, .studio-resource-item__content small { display: block; color: #858da1; font-size: .75rem; }
.studio-resource-item__content h3 { margin: 4px 0; color: #202944; font-size: .98rem; letter-spacing: -.02em; }
.studio-resource-item__status { justify-self: start; padding: 5px 9px; border-radius: 999px; font-size: .72rem; font-weight: 800; }
.studio-resource-item__status--published { background: #e4f8ee; color: #197045; }
.studio-resource-item__status--draft { background: #eeebfb; color: #5d48aa; }
.studio-resource-item__arrow { color: #857bba; font-size: 1.25rem; }
.studio-empty-state { padding: 58px; border: 1px dashed rgba(104,82,207,.34); border-radius: 20px; background: linear-gradient(135deg, #fff, #f3f1ff); text-align: center; }
.studio-empty-state > span { display: inline-grid; width: 48px; height: 48px; place-items: center; margin-bottom: 14px; border-radius: 16px; background: #ded8fb; color: #5943c1; font-size: 1.4rem; }
.studio-empty-state h2 { margin-bottom: 10px; color: #1c2443; font-size: 1.45rem; }
.studio-empty-state p { max-width: 500px; margin: 0 auto 25px; color: #717a90; line-height: 1.6; }

.studio-main--editor { padding-bottom: 110px; }
.studio-back-link { display: block; margin-bottom: 4px; color: #6550c6; font-size: .82rem; font-weight: 800; }
.studio-editor-heading { max-width: 820px; padding: 52px 0 30px; }
.studio-editor-heading .eyebrow { margin-bottom: 11px; }
.studio-editor-heading h1 { margin-bottom: 13px; color: #172048; font-size: clamp(2.35rem, 4.6vw, 4.6rem); letter-spacing: -.065em; line-height: .97; }
.studio-editor-heading p:not(.eyebrow) { max-width: 670px; margin: 0; color: #7a839a; line-height: 1.65; }
.studio-editor-layout { display: grid; grid-template-columns: minmax(0, 1fr) 272px; gap: 24px; align-items: start; }
.studio-editor-form { display: grid; gap: 18px; }
.studio-form-card { padding: 30px; border: 1px solid rgba(24,32,59,.09); border-radius: 20px; background: #fff; box-shadow: 0 10px 30px rgba(28,36,75,.035); }
.studio-form-card__title { display: flex; gap: 14px; align-items: start; margin-bottom: 26px; }
.studio-form-card__title > span { display: grid; width: 31px; height: 31px; flex: 0 0 31px; place-items: center; border-radius: 10px; background: #ece8ff; color: #5d4abb; font-size: .72rem; font-weight: 900; }
.studio-form-card__title h2 { margin: 0 0 3px; color: #202947; font-size: 1.15rem; letter-spacing: -.025em; }
.studio-form-card__title p { margin: 0; color: #8991a4; font-size: .82rem; }
.studio-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px; }
.studio-fields--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.studio-field { display: grid; gap: 8px; color: #34405e; font-size: .82rem; font-weight: 800; }
.studio-field--wide { grid-column: 1 / -1; }
.studio-field input, .studio-field select, .studio-field textarea, .studio-publish-bar select { width: 100%; min-height: 47px; padding: 11px 13px; border: 1px solid #dce0ea; border-radius: 10px; background: #fbfcff; color: #18203b; font: inherit; font-size: .93rem; font-weight: 500; transition: border-color .15s ease, box-shadow .15s ease; }
.studio-field textarea { min-height: auto; resize: vertical; line-height: 1.62; }
.studio-field input:focus, .studio-field select:focus, .studio-field textarea:focus, .studio-publish-bar select:focus { outline: 0; border-color: #6f55d6; box-shadow: 0 0 0 4px rgba(111,85,214,.13); background: #fff; }
.studio-field small { color: #9299aa; font-size: .72rem; font-weight: 600; line-height: 1.45; }
.studio-field code { padding: 1px 4px; border-radius: 4px; background: #eeebf8; color: #54429e; }
.studio-content-textarea { min-height: 420px !important; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace !important; font-size: .85rem !important; }
.studio-paths { display: grid; gap: 12px; margin-top: 24px; padding-top: 22px; border-top: 1px solid #edf0f5; }
.studio-paths > span { color: #34405e; font-size: .82rem; font-weight: 800; }
.studio-paths > div { display: flex; flex-wrap: wrap; gap: 9px; }
.studio-paths label { display: inline-flex; align-items: center; gap: 8px; min-height: 37px; padding: 0 11px; border: 1px solid #dde1eb; border-radius: 999px; color: #4e5871; font-size: .8rem; font-weight: 700; }
.studio-paths input { width: 15px; height: 15px; margin: 0; accent-color: #6d52d5; }
.studio-publish-bar { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; border: 1px solid rgba(109,82,213,.23); border-radius: 17px; background: linear-gradient(110deg, #f8f7ff, #eeefff); }
.studio-publish-bar > div { display: grid; gap: 7px; min-width: 225px; color: #454f6b; font-size: .78rem; font-weight: 800; }
.studio-publish-bar select { min-height: 40px; padding-top: 7px; padding-bottom: 7px; background: #fff; font-size: .83rem; }
.studio-editor-aside { position: sticky; top: 24px; display: grid; gap: 16px; }
.studio-writing-card { padding: 24px; border-radius: 19px; background: #19234a; color: #fff; box-shadow: 0 16px 35px rgba(25,35,74,.17); }
.studio-writing-card .eyebrow { color: #71e8f7; }
.studio-writing-card h2 { margin-bottom: 19px; color: #fff; font-size: 1.17rem; letter-spacing: -.025em; line-height: 1.28; }
.studio-writing-card ul { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.studio-writing-card li { display: flex; gap: 9px; color: rgba(255,255,255,.71); font-size: .8rem; line-height: 1.42; }
.studio-writing-card li::before { color: #70e8f5; content: "✓"; font-weight: 900; }
.studio-draft-note { padding: 18px; border: 1px solid #dbd7f5; border-radius: 16px; background: #f5f3ff; color: #5c6580; }
.studio-draft-note > span { display: block; margin-bottom: 7px; color: #7057ca; font-size: 1.1rem; }
.studio-draft-note p { margin: 0; font-size: .78rem; line-height: 1.52; }
.studio-message { margin: 0 0 18px; padding: 15px 18px; border-radius: 14px; font-size: .86rem; line-height: 1.5; }
.studio-message ul { margin: 8px 0 0; padding-left: 20px; }
.studio-message--success { border: 1px solid #a4e6c3; background: #ecfbf3; color: #216944; }
.studio-message--error { border: 1px solid #f3b7ba; background: #fff3f3; color: #a6303a; }

.studio-login { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr); }
.studio-login__story { display: flex; flex-direction: column; justify-content: center; min-height: 100%; padding: 72px min(9vw, 145px); overflow: hidden; background: radial-gradient(circle at 76% 18%, rgba(59,222,244,.26), transparent 20rem), radial-gradient(circle at 27% 93%, rgba(111,77,216,.36), transparent 26rem), #111a37; color: #fff; }
.studio-login__story .eyebrow { margin-top: 80px; color: #72eaf8; }
.studio-login__story h1 { max-width: 670px; margin-bottom: 20px; color: #fff; font-size: clamp(2.8rem, 5.1vw, 5.7rem); letter-spacing: -.07em; line-height: .96; }
.studio-login__story > p:not(.eyebrow) { max-width: 560px; margin-bottom: 30px; color: rgba(255,255,255,.68); font-size: 1.1rem; line-height: 1.65; }
.studio-login__principles { display: flex; flex-wrap: wrap; gap: 8px; }
.studio-login__principles span { padding: 8px 11px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: rgba(255,255,255,.72); font-size: .76rem; font-weight: 750; }
.studio-login__panel { display: grid; place-items: center; padding: 35px; background: #f7f7fb; }
.studio-login-card { width: min(100%, 410px); }
.studio-login-card .eyebrow { margin-bottom: 13px; }
.studio-login-card h2 { margin-bottom: 12px; color: #192249; font-size: 2.15rem; letter-spacing: -.055em; line-height: 1.05; }
.studio-login-card__lead { margin-bottom: 28px; color: #778095; font-size: .92rem; line-height: 1.58; }
.studio-form { display: grid; gap: 9px; }
.studio-form label { margin-top: 8px; color: #3d4764; font-size: .82rem; font-weight: 800; }
.studio-form input { width: 100%; min-height: 49px; padding: 0 13px; border: 1px solid #d9ddea; border-radius: 10px; background: #fff; color: #192249; font: inherit; }
.studio-form input:focus { outline: 0; border-color: #6e52d8; box-shadow: 0 0 0 4px rgba(110,82,216,.12); }
.studio-form .studio-primary-button { width: 100%; margin-top: 18px; }

@media (max-width: 1100px) {
    .studio-main { padding-right: 34px; padding-left: 34px; }
    .studio-editor-layout { grid-template-columns: 1fr; }
    .studio-editor-aside { position: static; grid-template-columns: 1fr 1fr; }
    .studio-hero-card { grid-template-columns: 1fr 160px; }
    .studio-hero-card__orb { width: 150px; height: 150px; }
}
@media (max-width: 780px) {
    .studio-shell { display: block; }
    .studio-sidebar { position: static; height: auto; min-height: auto; padding: 20px; }
    .studio-sidebar__label, .studio-sidebar__footer { display: none; }
    .studio-nav { display: flex; margin-top: 19px; }
    .studio-nav__item { min-height: 40px; }
    .studio-main { padding: 0 18px 60px; }
    .studio-topbar { min-height: 76px; }
    .studio-hero-card { grid-template-columns: 1fr; min-height: auto; padding: 32px 27px; }
    .studio-hero-card__orb { display: none; }
    .studio-metrics { grid-template-columns: 1fr; }
    .studio-resource-item { grid-template-columns: 25px minmax(0, 1fr) 20px; padding: 15px; }
    .studio-resource-item__status { display: none; }
    .studio-editor-aside { grid-template-columns: 1fr; }
    .studio-fields, .studio-fields--four { grid-template-columns: 1fr; }
    .studio-form-card { padding: 23px 18px; }
    .studio-publish-bar { align-items: stretch; flex-direction: column; }
    .studio-publish-bar > div { min-width: 0; }
    .studio-login { grid-template-columns: 1fr; }
    .studio-login__story { min-height: 390px; padding: 38px 26px; }
    .studio-login__story .eyebrow { margin-top: 60px; }
    .studio-login__panel { padding: 44px 26px; }
}

/* --------------------------------------------------------------------------
   VIFLY IA — Public Atelier. A warmer editorial language, away from AI SaaS.
   -------------------------------------------------------------------------- */
.public-body {
    --atelier-ink: #1f253c;
    --atelier-ink-deep: #15192b;
    --atelier-ivory: #f7f0e7;
    --atelier-cream: #fffaf3;
    --atelier-terracotta: #bf6248;
    --atelier-terracotta-soft: #e7a18a;
    --atelier-lavender: #9d8bd1;
    --atelier-sage: #9eb39c;
    --atelier-line: rgba(31, 37, 60, .16);
    --atelier-muted: #66687a;
    background: var(--atelier-ivory);
    color: var(--atelier-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.public-body .container { width: min(1240px, calc(100% - 64px)); }
.public-body h1, .public-body h2, .public-body h3 { font-family: Iowan Old Style, Palatino Linotype, Book Antiqua, Georgia, serif; }
.site-header { position: relative; z-index: 10; background: var(--atelier-ivory); }
.site-header__inner { display: flex; min-height: 84px; align-items: center; justify-content: space-between; gap: 30px; }
.site-brand { color: var(--atelier-ink); font-family: Inter, ui-sans-serif, sans-serif; font-size: 1rem; font-weight: 900; letter-spacing: .13em; white-space: nowrap; }
.site-brand span { color: var(--atelier-terracotta); }
.site-nav { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.site-nav a { position: relative; color: var(--atelier-ink); font-size: .84rem; font-weight: 700; }
.site-nav a::after { position: absolute; right: 0; bottom: -7px; left: 0; height: 1px; content: ""; background: var(--atelier-terracotta); transform: scaleX(0); transform-origin: right; transition: transform .24s ease; }
.site-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.site-header__cta { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 15px; border: 1px solid var(--atelier-ink); border-radius: 999px; color: var(--atelier-ink); font-size: .8rem; font-weight: 800; transition: color .2s ease, background .2s ease; }
.site-header__cta:hover { background: var(--atelier-ink); color: var(--atelier-cream); }
.site-header__cta span { color: var(--atelier-terracotta); font-size: 1.1rem; }

.atelier-hero { position: relative; overflow: hidden; background: var(--atelier-ivory); }
.atelier-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(400px, .96fr); min-height: 680px; align-items: center; gap: 40px; }
.atelier-hero__copy { position: relative; z-index: 2; padding: 92px 0 108px; }
.public-body .eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 23px; color: var(--atelier-terracotta); font-family: Inter, ui-sans-serif, sans-serif; font-size: .69rem; font-weight: 900; letter-spacing: .15em; }
.public-body .eyebrow span { display: inline-block; width: 24px; height: 2px; background: currentColor; }
.public-body .eyebrow--lavender { color: var(--atelier-lavender); }
.public-body .eyebrow--paper { color: rgba(255, 250, 243, .75); }
.atelier-hero h1 { max-width: 760px; margin: 0 0 28px; color: var(--atelier-ink); font-size: clamp(4rem, 7.2vw, 7.2rem); font-weight: 500; letter-spacing: -.072em; line-height: .82; }
.atelier-hero h1 em, .atelier-heading h2 em, .atelier-invitation h2 em { color: var(--atelier-terracotta); font-style: italic; font-weight: 400; }
.atelier-hero__lead { max-width: 570px; margin: 0 0 32px; color: var(--atelier-muted); font-size: 1.12rem; line-height: 1.72; }
.atelier-hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 27px; }
.public-body .button { min-height: 54px; border-radius: 2px; font-family: Inter, ui-sans-serif, sans-serif; font-size: .85rem; letter-spacing: .01em; }
.button--terracotta { background: var(--atelier-terracotta); color: #fffaf3; }
.button--terracotta:hover { background: #a85039; }
.button--terracotta span, .button--paper span { margin-left: 12px; font-size: 1.15rem; }
.text-link { display: inline-flex; align-items: center; gap: 10px; padding-bottom: 5px; border-bottom: 1px solid var(--atelier-ink); color: var(--atelier-ink); font-size: .85rem; font-weight: 800; transition: border-color .2s ease, color .2s ease; }
.text-link:hover { border-color: var(--atelier-terracotta); color: var(--atelier-terracotta); }
.atelier-trust { display: flex; align-items: center; gap: 13px; margin-top: 52px; }
.atelier-trust__seal { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--atelier-terracotta); border-radius: 50%; color: var(--atelier-terracotta); font-family: Georgia, serif; font-style: italic; }
.atelier-trust p { margin: 0; color: var(--atelier-muted); font-size: .77rem; line-height: 1.48; }
.atelier-trust strong { color: var(--atelier-ink); font-weight: 850; }
.atelier-hero__art { position: relative; min-height: 530px; }
.atelier-hero__rays { position: absolute; top: 0; right: 0; bottom: 0; width: 48%; opacity: .55; background: repeating-conic-gradient(from 210deg at 98% 25%, transparent 0deg 7deg, rgba(191, 98, 72, .12) 7deg 8deg, transparent 8deg 17deg); }
.art-sun { position: absolute; top: 51px; right: 34px; width: 275px; height: 275px; border-radius: 50%; background: var(--atelier-terracotta); box-shadow: 0 0 0 28px rgba(191, 98, 72, .10), 0 0 0 70px rgba(191, 98, 72, .05); }
.art-sun::after { position: absolute; inset: 39px; border: 1px solid rgba(255, 250, 243, .7); border-radius: inherit; content: ""; }
.art-sun span { position: absolute; top: 50%; left: 50%; width: 1px; height: 112%; background: rgba(255, 250, 243, .64); transform-origin: 50% 0; }
.art-sun span:nth-child(1) { transform: rotate(0deg); }.art-sun span:nth-child(2) { transform: rotate(45deg); }.art-sun span:nth-child(3) { transform: rotate(90deg); }.art-sun span:nth-child(4) { transform: rotate(135deg); }.art-sun span:nth-child(5) { transform: rotate(180deg); }.art-sun span:nth-child(6) { transform: rotate(225deg); }.art-sun span:nth-child(7) { transform: rotate(270deg); }.art-sun span:nth-child(8) { transform: rotate(315deg); }
.art-orbit { position: absolute; border: 1px solid rgba(31, 37, 60, .22); border-radius: 50%; transform: rotate(-22deg); }
.art-orbit--one { top: 70px; right: -17px; width: 450px; height: 235px; }.art-orbit--two { top: 35px; right: 78px; width: 295px; height: 470px; }
.art-card { position: absolute; display: grid; gap: 8px; width: 190px; padding: 18px 19px; border: 1px solid rgba(31, 37, 60, .18); background: rgba(255, 250, 243, .88); box-shadow: 0 18px 42px rgba(31, 37, 60, .10); backdrop-filter: blur(10px); }
.art-card small { color: var(--atelier-terracotta); font-size: .67rem; font-weight: 900; letter-spacing: .12em; }.art-card strong { color: var(--atelier-ink); font-family: Georgia, serif; font-size: 1.32rem; font-weight: 500; }.art-card i { display: block; width: 32px; height: 2px; background: var(--atelier-lavender); }
.art-card--top { top: 128px; left: 19px; transform: rotate(-7deg); }.art-card--bottom { right: 5px; bottom: 69px; transform: rotate(5deg); }.art-card--bottom i { background: var(--atelier-sage); }
.art-note { position: absolute; bottom: 18px; left: 81px; color: var(--atelier-ink); font-family: Georgia, serif; font-size: 1.05rem; font-style: italic; line-height: 1.25; transform: rotate(-6deg); }.art-note b { color: var(--atelier-terracotta); font-weight: 500; }

.manifesto-strip { padding: 24px 0; background: var(--atelier-ink); color: var(--atelier-cream); }.manifesto-strip__inner { display: flex; align-items: center; justify-content: center; gap: 28px; }.manifesto-strip p { margin: 0; font-family: Georgia, serif; font-size: clamp(1.1rem, 2vw, 1.42rem); font-style: italic; }.manifesto-strip span { color: var(--atelier-terracotta-soft); }
.atelier-section { padding: 132px 0; }.atelier-section--paths { background: var(--atelier-cream); }.atelier-section--guides { background: #e8e5ee; }
.atelier-heading { max-width: 880px; margin-bottom: 61px; }.atelier-heading--split { display: grid; grid-template-columns: minmax(0, 1fr) 320px; max-width: none; align-items: end; gap: 40px; }.atelier-heading h2 { margin: 0; color: var(--atelier-ink); font-size: clamp(3rem, 5.2vw, 5.3rem); font-weight: 500; letter-spacing: -.065em; line-height: .87; }.atelier-heading > p:not(.eyebrow) { margin: 0 0 8px; color: var(--atelier-muted); font-size: 1rem; line-height: 1.72; }
.atelier-paths { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--atelier-line); }.atelier-path { position: relative; display: grid; grid-template-columns: 80px 1fr auto; min-height: 225px; gap: 23px; align-items: start; padding: 31px 20px 34px 0; border-bottom: 1px solid var(--atelier-line); transition: background .25s ease, padding .25s ease; }.atelier-path:nth-child(odd) { padding-right: 46px; }.atelier-path:nth-child(even) { padding-left: 38px; border-left: 1px solid var(--atelier-line); }.atelier-path:hover { background: rgba(191, 98, 72, .07); }.atelier-path__number { color: var(--atelier-terracotta); font-family: Georgia, serif; font-size: 1.1rem; font-style: italic; }.atelier-path__body p { margin: 2px 0 32px; color: var(--atelier-muted); font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }.atelier-path__body h3 { margin: 0 0 11px; color: var(--atelier-ink); font-size: 2rem; font-weight: 500; letter-spacing: -.045em; line-height: 1; }.atelier-path__body span { color: var(--atelier-muted); font-size: .9rem; line-height: 1.55; }.atelier-path__arrow { color: var(--atelier-terracotta); font-size: 1.35rem; transition: transform .25s ease; }.atelier-path:hover .atelier-path__arrow { transform: translate(4px, -4px); }
.atelier-guides { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }.atelier-guide { display: flex; min-height: 375px; flex-direction: column; justify-content: space-between; padding: 30px; border: 1px solid rgba(31, 37, 60, .17); background: rgba(255, 250, 243, .75); transition: transform .25s ease, box-shadow .25s ease; }.atelier-guide:hover { box-shadow: 0 23px 44px rgba(31, 37, 60, .12); transform: translateY(-6px); }.atelier-guide__top { display: flex; justify-content: space-between; color: var(--atelier-lavender); font-family: Inter, sans-serif; font-size: .72rem; font-weight: 900; letter-spacing: .1em; }.atelier-guide__top span:last-child { color: var(--atelier-muted); }.atelier-guide > div:nth-child(2) { margin-top: 58px; }.atelier-guide > div:nth-child(2) > p:first-child { margin-bottom: 15px; color: var(--atelier-terracotta); font-size: .68rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }.atelier-guide h3 { margin: 0 0 15px; color: var(--atelier-ink); font-size: 1.75rem; font-weight: 500; letter-spacing: -.045em; line-height: 1.02; }.atelier-guide h3 a:hover { color: var(--atelier-terracotta); }.atelier-guide__summary { margin: 0; color: var(--atelier-muted); font-size: .9rem; line-height: 1.62; }.atelier-guide__link { display: flex; align-items: center; justify-content: space-between; padding-top: 18px; border-top: 1px solid var(--atelier-line); color: var(--atelier-ink); font-size: .8rem; font-weight: 850; }.atelier-guide__link span { color: var(--atelier-terracotta); font-size: 1.2rem; }
.atelier-invitation { overflow: hidden; background: var(--atelier-terracotta); color: var(--atelier-cream); }.atelier-invitation__inner { position: relative; display: grid; grid-template-columns: 1.2fr .8fr; min-height: 442px; align-items: center; gap: 70px; }.atelier-invitation__inner::after { position: absolute; top: -198px; right: -79px; width: 530px; height: 530px; border: 1px solid rgba(255, 250, 243, .33); border-radius: 50%; content: ""; box-shadow: 0 0 0 65px rgba(255, 250, 243, .08), 0 0 0 132px rgba(255, 250, 243, .05); }.atelier-invitation h2 { position: relative; z-index: 1; margin: 0; color: var(--atelier-cream); font-size: clamp(3.7rem, 6vw, 6.4rem); font-weight: 500; letter-spacing: -.07em; line-height: .83; }.atelier-invitation h2 em { color: var(--atelier-ink); }.atelier-invitation__right { position: relative; z-index: 1; }.atelier-invitation__right p { max-width: 360px; margin: 0 0 28px; color: rgba(255, 250, 243, .85); font-size: 1.03rem; line-height: 1.66; }.button--paper { background: var(--atelier-cream); color: var(--atelier-ink); }.button--paper:hover { background: var(--atelier-ink); color: var(--atelier-cream); }
.site-footer { padding: 30px 0; background: var(--atelier-ink-deep); color: rgba(255, 250, 243, .65); }.site-footer__inner { display: flex; align-items: center; justify-content: space-between; gap: 25px; }.site-footer .site-brand { color: var(--atelier-cream); }.site-footer p, .site-footer a:not(.site-brand) { margin: 0; font-size: .75rem; }.site-footer a:not(.site-brand):hover { color: var(--atelier-terracotta-soft); }

/* Existing public routes: same atelier palette, no change to their PHP data flow. */
.public-body .category-hero, .public-body .start-hero, .public-body .resource-hero { background: var(--atelier-ink); }.public-body .category-hero { padding: 94px 0 105px; }.public-body .category-hero::before, .public-body .start-hero::before, .public-body .resource-hero::before { position: absolute; top: -190px; right: 4%; width: 510px; height: 510px; border: 1px solid rgba(231, 161, 138, .48); border-radius: 50%; content: ""; box-shadow: 0 0 0 55px rgba(191, 98, 72, .10), 0 0 0 112px rgba(157, 139, 209, .08); }.public-body .category-hero h1, .public-body .start-hero h1, .public-body .resource-hero h1 { color: var(--atelier-cream); font-family: Iowan Old Style, Palatino Linotype, Georgia, serif; font-weight: 500; }.public-body .category-hero h1 span, .public-body .start-hero h1 span, .public-body .resource-hero h1 span { color: var(--atelier-terracotta-soft); }.public-body .back-link { margin-bottom: 48px; color: rgba(255, 250, 243, .68); }.public-body .back-link:hover { color: var(--atelier-terracotta-soft); }.public-body .category-hero .eyebrow, .public-body .start-hero .eyebrow, .public-body .resource-hero .eyebrow { color: var(--atelier-terracotta-soft); }.public-body .category-hero__count { color: var(--atelier-terracotta-soft) !important; }.public-body .category-content { padding: 116px 0 132px; background: var(--atelier-cream); }.public-body .section-heading h2, .public-body .empty-state h2 { color: var(--atelier-ink); font-family: Iowan Old Style, Palatino Linotype, Georgia, serif; font-weight: 500; }.public-body .category-resource { border-color: var(--atelier-line); border-radius: 0; background: transparent; }.public-body .category-resource:hover { background: rgba(191, 98, 72, .07); box-shadow: none; transform: translateX(7px); }.public-body .category-resource h3 { color: var(--atelier-ink); font-family: Iowan Old Style, Palatino Linotype, Georgia, serif; font-size: 1.55rem; font-weight: 500; }.public-body .category-resource__meta { color: var(--atelier-terracotta); }.public-body .category-resource__footer span:last-child { color: var(--atelier-terracotta); }.public-body .empty-state { border-color: var(--atelier-line); border-radius: 0; background: var(--atelier-ivory); }.public-body .button--dark { border-radius: 2px; background: var(--atelier-ink); color: var(--atelier-cream); }
.public-body .start-hero { padding: 92px 0 108px; }.public-body .start-section { padding: 116px 0; background: var(--atelier-cream); }.public-body .start-principles-section { padding: 120px 0; background: #e8e5ee; }.public-body .start-intro h2, .public-body .first-step h2, .public-body .start-next h2 { color: var(--atelier-ink); font-family: Iowan Old Style, Palatino Linotype, Georgia, serif; font-weight: 500; }.public-body .principle-list { border-color: var(--atelier-line); }.public-body .principle-list li { border-color: var(--atelier-line); }.public-body .principle-list li > span { color: var(--atelier-terracotta); }.public-body .principle-list h3 { color: var(--atelier-ink); font-family: Iowan Old Style, Palatino Linotype, Georgia, serif; font-size: 1.55rem; font-weight: 500; }.public-body .start-section--soft { background: var(--atelier-ivory); }.public-body .first-step__card { border-radius: 0; background: var(--atelier-ink); }.public-body .first-step__card strong { color: var(--atelier-terracotta-soft); }.public-body .start-next { padding: 118px 0; background: var(--atelier-cream); }
.public-body .resource-hero { padding: 90px 0 105px; }.public-body .resource-body-section { padding: 105px 24px 132px; background: var(--atelier-cream); }.public-body .resource-body { color: var(--atelier-ink); font-family: Iowan Old Style, Palatino Linotype, Georgia, serif; font-size: 1.17rem; line-height: 1.8; }.public-body .resource-body h1, .public-body .resource-body h2 { color: var(--atelier-ink); font-family: Iowan Old Style, Palatino Linotype, Georgia, serif; font-weight: 500; }.public-body .vigilance { border-color: rgba(191, 98, 72, .45); border-radius: 0; background: #f0d5c9; }.public-body .vigilance__label { color: var(--atelier-terracotta); }

@media (max-width: 850px) { .public-body .container { width: min(100% - 40px, 1240px); }.site-nav { display: none; }.site-header__inner { min-height: 70px; }.atelier-hero__grid { grid-template-columns: 1fr; min-height: auto; }.atelier-hero__copy { padding: 76px 0 48px; }.atelier-hero__art { min-height: 390px; margin-bottom: 20px; }.art-sun { top: 30px; right: 15%; width: 210px; height: 210px; }.art-orbit--one { right: 4%; width: 360px; }.art-orbit--two { right: 23%; height: 350px; }.art-card--top { left: 7%; }.art-card--bottom { right: 8%; bottom: 34px; }.atelier-heading--split, .atelier-invitation__inner { grid-template-columns: 1fr; gap: 28px; }.atelier-heading--split > p { max-width: 420px; }.atelier-paths { grid-template-columns: 1fr; }.atelier-path:nth-child(odd), .atelier-path:nth-child(even) { padding-right: 0; padding-left: 0; border-left: 0; }.atelier-guides { grid-template-columns: 1fr; }.atelier-guide { min-height: 300px; }.atelier-guide > div:nth-child(2) { margin-top: 30px; }.atelier-invitation__inner { min-height: 540px; padding: 75px 0; }.atelier-invitation__inner::after { right: -260px; bottom: -250px; top: auto; }.site-footer__inner { align-items: flex-start; flex-direction: column; gap: 13px; }.public-body .category-resource { grid-template-columns: 1fr; gap: 12px; }.public-body .category-resource__footer { justify-content: space-between; }.public-body .first-step { grid-template-columns: 1fr; } }
@media (max-width: 500px) { .atelier-hero h1 { font-size: clamp(3.55rem, 16vw, 5rem); }.atelier-hero__actions { align-items: flex-start; flex-direction: column; gap: 20px; }.atelier-hero__art { min-height: 330px; }.art-sun { right: 6%; }.art-card { width: 158px; }.art-card--top { left: 0; }.art-card--bottom { right: 0; }.art-note { left: 38px; }.manifesto-strip__inner { flex-direction: column; gap: 5px; text-align: center; }.manifesto-strip__inner span { display: none; }.atelier-section { padding: 88px 0; }.atelier-path { grid-template-columns: 44px 1fr auto; gap: 12px; }.atelier-path__body h3 { font-size: 1.7rem; }.atelier-invitation h2 { font-size: 4rem; }.site-header__cta { padding: 0 12px; }.site-header__cta span { display: none; } }

.resource-card h3 a:focus-visible, .back-link:focus-visible, .button:focus-visible, .path-card:focus-visible, .category-resource:focus-visible { outline: 3px solid var(--cyan); outline-offset: 4px; }

@media (max-width: 900px) {
    .hero { min-height: 620px; }
    .path-grid { grid-template-columns: repeat(2, 1fr); }
    .resource-grid { grid-template-columns: 1fr; }
    .resource-card { min-height: 250px; }
    .category-resource { grid-template-columns: 140px 1fr; }
    .category-resource__footer { grid-column: 2; justify-content: space-between; }
}

@media (max-width: 640px) {
    .container { width: min(100% - 32px, 1180px); }
    .hero__content { padding: 88px 0; }
    .section { padding: 80px 0; }
    .section-heading--inline { display: block; }
    .path-grid { grid-template-columns: 1fr; }
    .path-card { min-height: 220px; }
    .button { width: 100%; }
    .resource-hero, .category-hero { padding: 52px 0 72px; }
    .back-link { margin-bottom: 42px; }
    .resource-body-section { padding: 64px 16px 88px; }
    .resource-body { font-size: 1rem; }
    .category-content { padding: 68px 0 88px; }
    .category-resource { grid-template-columns: 1fr; gap: 16px; padding: 24px; }
    .category-resource__footer { grid-column: auto; }
    .empty-state { padding: 32px 24px; }
}
