/* Only public surfaces opt in. Account removes this class before showing its workspace. */
body.lyre-public { --lp-bg:#14181c; --lp-panel:#1b2127; --lp-line:#3b454e; --lp-text:#f1f0e9; --lp-muted:#b1bbc4; --lp-accent:#a9c9e0; margin:0; background:var(--lp-bg); color:var(--lp-text); font:16px/1.65 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color-scheme:dark; }
.lyre-public *, .lyre-public *::before, .lyre-public *::after { box-sizing:border-box; }
.lyre-public [hidden] { display:none!important; }
.lyre-public a { color:inherit; text-underline-offset:5px; }
.lyre-public a:hover { color:var(--lp-accent); }
.lyre-public button, .lyre-public input { font:inherit; }
.lyre-public button { cursor:pointer; }
.lyre-public :focus-visible { outline:2px solid var(--lp-accent); outline-offset:5px; }
.lyre-public h1, .lyre-public h2, .lyre-public h3, .lyre-public h4 { color:var(--lp-text); line-height:1.13; font-weight:550; margin:0 0 20px; letter-spacing:-.035em; }
.lyre-public h1 { font-size:clamp(2.6rem,5.7vw,5.25rem); max-width:1000px; }
.lyre-public h2 { font-size:clamp(1.8rem,3vw,2.7rem); }
.lyre-public h3 { font-size:1.3rem; }
.lyre-public h4 { font-size:1.05rem; margin-top:24px; }
.lyre-public p { color:var(--lp-muted); margin:0 0 20px; max-width:72ch; }
.lyre-public code { font: .85em/1.7 ui-monospace,SFMono-Regular,Consolas,monospace; overflow-wrap:anywhere; color:#d0deea; }
.lyre-public pre { padding:20px; background:#101519; border:1px solid var(--lp-line); overflow:auto; max-width:100%; font-size:.93rem; }
.lyre-public pre code { overflow-wrap:normal; }
.lyre-public .lp-eyebrow { font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:650; color:var(--lp-accent); margin-bottom:22px; }
.lyre-public .lp-header-wrap { position:sticky; top:0; z-index:10; background:var(--lp-bg); border-bottom:1px solid var(--lp-line); }
.lyre-public .lp-header { max-width:1280px; margin:auto; padding:14px 40px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.lyre-public .lp-brand { text-decoration:none; display:flex; gap:10px; align-items:center; font-size:1.1rem; font-weight:650; line-height:1.1; flex-shrink:0; }
.lyre-public .lp-brand small { display:block; color:var(--lp-muted); font-size:.55rem; letter-spacing:.14em; margin-top:5px; }
.lyre-public .lp-brand img { object-fit:contain; filter:brightness(0) invert(1); }
.lyre-public [data-public-chrome] { display:contents; }
.lyre-public .lp-nav { display:flex; gap:28px; }
.lyre-public .lp-nav a { font-size:.85rem; text-decoration:none; padding:10px 0; color:var(--lp-muted); }
.lyre-public .lp-nav a[aria-current] { color:var(--lp-text); box-shadow:0 2px var(--lp-accent); }
.lyre-public .lp-account { text-decoration:none; border:1px solid var(--lp-line); padding:9px 16px; font-size:.85rem; display:flex; gap:18px; }
.lyre-public .lp-skip { position:absolute; left:20px; top:-100px; padding:10px; background:var(--lp-panel); }
.lyre-public .lp-skip:focus { top:5px; z-index:20; }
.lyre-public .lp-main { width:min(1200px,calc(100% - 80px)); margin:0 auto; min-height:65vh; }
.lyre-public .lp-hero { padding:95px 0 85px; }
.lyre-public .lp-hero h1 { max-width:950px; margin-bottom:32px; }
.lyre-public .lp-lede { font-size:clamp(1.1rem,1.8vw,1.35rem); max-width:660px; line-height:1.6; }
.lyre-public .lp-actions { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:36px; }
.lyre-public .lp-button { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:46px; padding:11px 20px; background:var(--lp-accent); color:#14232f; border:1px solid var(--lp-accent); text-decoration:none; font-size:.9rem; font-weight:650; border-radius:2px; }
.lyre-public .lp-button:hover { color:#14232f; background:#c1d9ea; }
.lyre-public .lp-secondary { color:var(--lp-text); background:transparent; border-color:#687782; }
.lyre-public .lp-secondary:hover { color:var(--lp-text); background:var(--lp-panel); }
.lyre-public .lp-text-link { display:inline-block; padding:10px 0; font-size:.9rem; }
.lyre-public .lp-actions .lp-text-link { margin-left:10px; }
.lyre-public .lp-section { border-top:1px solid var(--lp-line); padding:65px 0; }
.lyre-public .lp-section-heading { display:grid; grid-template-columns:1fr 2fr; gap:40px; margin-bottom:36px; }
.lyre-public .lp-section-heading > .lp-eyebrow { padding-top:9px; }
.lyre-public .lp-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; padding:0; margin:35px 0 25px; border-top:1px solid #677b8b; }
.lyre-public .lp-flow li { position:relative; padding:28px 35px 20px 0; }
.lyre-public .lp-flow li:not(:last-child)::after { content:'→'; position:absolute; top:-20px; right:30px; background:var(--lp-bg); padding:0 9px; color:var(--lp-accent); font-size:1.5rem; }
.lyre-public .lp-flow h2, .lyre-public .lp-flow h3 { font-size:1.35rem; margin:18px 0 14px; }
.lyre-public .lp-flow p { font-size:.93rem; }
.lyre-public .lp-step { font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--lp-accent); }
.lyre-public .lp-access { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); background:var(--lp-panel); border:1px solid var(--lp-line); }
.lyre-public .lp-access > div { padding:28px; display:flex; flex-direction:column; }
.lyre-public .lp-access > div + div { border-left:1px solid var(--lp-line); }
.lyre-public .lp-access p { font-size:.9rem; }
.lyre-public .lp-access .lp-eyebrow { font-size:.7rem; }
.lyre-public .lp-access span { margin-top:auto; color:var(--lp-muted); font-size:.75rem; border-top:1px solid var(--lp-line); padding-top:18px; }
.lyre-public .lp-system-base { display:flex; align-items:center; justify-content:center; gap:22px; padding:20px; border:1px solid var(--lp-line); border-top:0; font-size:.8rem; color:var(--lp-muted); }
.lyre-public .lp-system-base strong { color:var(--lp-text); }
.lyre-public .lp-catalogue-status { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 0; border-bottom:1px solid var(--lp-line); font-size:.85rem; }
.lyre-public .lp-catalogue-status h2 { font-size:1.35rem; margin:0; }
.lyre-public .lp-preview-row { display:grid; grid-template-columns:1fr auto 20px; gap:30px; padding:24px 0; border-bottom:1px solid var(--lp-line); text-decoration:none; align-items:center; }
.lyre-public .lp-preview-row:hover { background:var(--lp-panel); }
.lyre-public .lp-preview-row h3 { font-size:1.15rem; margin-bottom:8px; }
.lyre-public .lp-preview-row p { font-size:.9rem; margin-bottom:6px; }
.lyre-public .lp-preview-row > span { font-size:.85rem; }
.lyre-public .lp-preview-row small { display:block; color:var(--lp-muted); }
.lyre-public .lp-split { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.lyre-public .lp-discovery { display:flex; justify-content:space-between; gap:16px; padding:18px 0; border-bottom:1px solid var(--lp-line); font: .85rem/1.6 ui-monospace,monospace; overflow-wrap:anywhere; }
.lyre-public .lp-cta { display:flex; align-items:center; justify-content:space-between; gap:40px; border-top:1px solid var(--lp-line); padding:60px 0; }
.lyre-public .lp-cta .lp-button { flex-shrink:0; }
.lyre-public .lp-cta h2 { font-size:2rem; }
.lyre-public .lp-footer { width:min(1200px,calc(100% - 80px)); margin:30px auto 0; border-top:1px solid var(--lp-line); display:grid; grid-template-columns:2fr 1fr 1fr; gap:40px; padding:36px 0 50px; font-size:.8rem; }
.lyre-public .lp-footer nav { display:flex; flex-direction:column; align-items:start; gap:5px; }
.lyre-public .lp-footer a { text-decoration:none; padding:5px 0; color:var(--lp-muted); }
.lyre-public .lp-footer .lp-footer-brand { font-size:1rem; color:var(--lp-text); }
.lyre-public .lp-footer p { margin-top:10px; font-size:.8rem; }
.lyre-public .lp-page-heading { padding:75px 0 45px; }
.lyre-public .lp-page-heading h1 { font-size:clamp(2.5rem,5vw,4.4rem); }
.lyre-public .lp-toolbar { display:flex; align-items:end; justify-content:space-between; gap:24px; border-bottom:1px solid var(--lp-line); padding:20px 0; }
.lyre-public .lp-toolbar label { display:grid; gap:8px; width:min(550px,100%); font-size:.85rem; }
.lyre-public input { border:1px solid #73808b; border-radius:2px; background:#101519; color:var(--lp-text); padding:12px 14px; min-height:46px; min-width:0; }
.lyre-public input::placeholder { color:#a7b3bf; }
.lyre-public .lp-toolbar > span { font-size:.85rem; padding-bottom:12px; }
.lyre-public .lp-note { font-size:.8rem; margin:15px 0; }
.lyre-public .lp-capability { border-bottom:1px solid var(--lp-line); scroll-margin-top:100px; }
.lyre-public .lp-capability > summary { display:grid; grid-template-columns:1fr 180px 24px; gap:24px; align-items:center; padding:25px 6px; list-style:none; cursor:pointer; }
.lyre-public .lp-capability > summary::-webkit-details-marker { display:none; }
.lyre-public .lp-capability > summary:hover { background:var(--lp-panel); }
.lyre-public .lp-object-name { display:grid; gap:6px; }
.lyre-public .lp-object-name strong { font-size:1.2rem; font-weight:550; }
.lyre-public .lp-object-name > span { color:var(--lp-muted); font-size:.9rem; }
.lyre-public .lp-object-name code { font-size:.78rem; }
.lyre-public .lp-object-state { font-size:.85rem; }
.lyre-public .lp-object-state small { display:block; color:var(--lp-muted); }
.lyre-public .lp-open { font-size:1.6rem; color:var(--lp-accent); }
.lyre-public .lp-capability[open] .lp-open { transform:rotate(45deg); }
.lyre-public .lp-object-detail { background:var(--lp-panel); padding:30px; border-top:1px solid var(--lp-line); }
.lyre-public .lp-object-detail h2 { font-size:1.25rem; margin:0; }
.lyre-public .lp-reference { display:block; margin:18px 0; }
.lyre-public .lp-contract { border-top:1px solid var(--lp-line); padding:12px 0; }
.lyre-public summary { cursor:pointer; padding:14px 0; }
.lyre-public .lp-badge { display:inline-block; font-size:.72rem; padding:3px 8px; border:1px solid #61707c; color:#ccd8e1; font-weight:450; line-height:1.5; }
.lyre-public .lp-contract .lp-badge { margin-left:15px; }
.lyre-public .lp-code-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:16px; font-size:.85rem; min-width:0; }
.lyre-public .lp-code-head button { border:1px solid #74838f; background:transparent; color:var(--lp-text); padding:9px 13px; min-height:44px; flex-shrink:0; border-radius:2px; }
.lyre-public .lp-schema-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.lyre-public .lp-schema-grid > section { min-width:0; }
.lyre-public .lp-table-scroll { overflow:auto; }
.lyre-public table { border-collapse:collapse; width:100%; font-size:.8rem; text-align:left; }
.lyre-public caption { text-align:left; color:var(--lp-muted); margin:8px 0; }
.lyre-public th, .lyre-public td { padding:12px 10px; border-bottom:1px solid var(--lp-line); vertical-align:top; }
.lyre-public .lp-schema { font-size:.85rem; }
.lyre-public .lp-provider { padding:20px 0; border-top:1px solid var(--lp-line); }
.lyre-public .lp-provider strong { margin-right:15px; }
.lyre-public .lp-provider p { margin:10px 0; font-size:.9rem; }
.lyre-public .lp-disclosure { border-top:1px solid var(--lp-line); padding:5px 0; }
.lyre-public .lp-disclosure summary { font-size:1.1rem; padding:20px 0; }
.lyre-public .lp-disclosure p { max-width:85ch; }
.lyre-public .lp-empty { padding:35px 0; }
.lyre-public .lp-empty h2, .lyre-public .lp-empty h3 { font-size:1.4rem; }
.lyre-public .lp-organization { border-bottom:1px solid var(--lp-line); padding:35px 0; }
.lyre-public .lp-organization header { display:flex; justify-content:space-between; align-items:start; gap:25px; }
.lyre-public .lp-organization h2 { font-size:1.8rem; margin-bottom:10px; overflow-wrap:anywhere; }
.lyre-public .lp-organization p { margin-top:16px; }
.lyre-public .lp-organization-work { display:grid; grid-template-columns:1fr 1fr; gap:0 35px; margin-bottom:15px; }
.lyre-public .lp-organization-work a { display:grid; grid-template-columns:1fr auto; padding:17px 0; border-top:1px solid var(--lp-line); text-decoration:none; }
.lyre-public .lp-organization-work code { grid-row:2; font-size:.75rem; }
.lyre-public .lp-organization-work strong { font-size:.95rem; font-weight:500; }
.lyre-public .lp-organization-work span { grid-column:2; grid-row:1 / 3; align-self:center; }
.lyre-public .lp-discovery-feature { display:grid; grid-template-columns:1fr 1fr; gap:60px; padding:35px; background:var(--lp-panel); border-left:3px solid var(--lp-accent); }
.lyre-public .lp-discovery-feature h2 { font-size:1.75rem; }
.lyre-public .lp-reading-layout { display:grid; grid-template-columns:240px 1fr; gap:70px; }
.lyre-public .lp-contents { position:sticky; top:115px; align-self:start; display:grid; font-size:.85rem; }
.lyre-public .lp-contents a { padding:12px 0; border-top:1px solid var(--lp-line); text-decoration:none; }
.lyre-public .lp-prose { max-width:760px; }
.lyre-public .lp-prose section { padding:10px 0 45px; scroll-margin-top:115px; }
.lyre-public .lp-prose h3 { margin-top:30px; }
/* Public account styling exists only while its body opts in. */
.lyre-public .lyre-shell { width:min(1200px,calc(100% - 80px)); min-height:0; margin:auto; padding:0; display:block; }
.lyre-public .identity-frame { display:grid; grid-template-columns:1fr 1fr; gap:80px; margin:70px 0; align-items:start; }
.lyre-public .identity-context { padding-top:18px; }
.lyre-public .identity-context h1 { font-size:clamp(2.6rem,4.5vw,4rem); max-width:540px; }
.lyre-public .identity-context p { font-size:1rem; line-height:1.7; }
.lyre-public .identity-panel { padding:28px; background:var(--lp-panel); border:1px solid var(--lp-line); box-shadow:none; min-width:0; }
.lyre-public .connection-state { color:var(--lp-muted); font-size:.78rem; padding:0 0 18px; border-bottom:1px solid var(--lp-line); }
.lyre-public .connection-state[data-state="success"] { color:#b4d2be; }
.lyre-public .connection-state[data-state="error"] { color:#ffc1b7; }
.lyre-public .auth-access-header { text-align:left; margin:25px 0; }
.lyre-public .auth-access-header img { display:none; }
.lyre-public .auth-access-header h2 { font-size:1.5rem; margin:0; }
.lyre-public .auth-access-header p { color:var(--lp-muted); font-size:.85rem; margin-top:12px; }
.lyre-public .mode-tabs { display:grid; grid-template-columns:1fr 1fr; gap:0; margin:25px 0; border-bottom:1px solid var(--lp-line); }
.lyre-public .mode-tab { text-align:center; padding:14px 8px; min-height:46px; color:var(--lp-muted); font-size:.9rem; border:0; background:transparent; }
.lyre-public .mode-tab.is-active { color:var(--lp-text); border-bottom:2px solid var(--lp-accent); margin:0 0 -1px; }
.lyre-public .identity-form { display:grid; gap:18px; }
.lyre-public .identity-form label { color:var(--lp-text); display:grid; gap:7px; font-size:.85rem; font-weight:500; }
.lyre-public .identity-form input { width:100%; border-color:#73808b; background:#101519; outline:revert; }
.lyre-public .identity-form input:focus { box-shadow:none; border-color:var(--lp-accent); }
.lyre-public .registration-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.lyre-public .submit-button { background:var(--lp-accent); color:#14232f; border:1px solid var(--lp-accent); padding:12px 18px; border-radius:2px; min-height:46px; }
.lyre-public .lp-recovery { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:20px; }
.lyre-public .lp-recovery button { background:none; border:0; color:var(--lp-muted); text-decoration:underline; text-underline-offset:4px; font-size:.8rem; padding:10px 0; min-height:44px; }
.lyre-public .form-note { color:var(--lp-muted); font-size:.8rem; }
.lyre-public .lp-account-context { margin-top:35px; border-top:1px solid var(--lp-line); padding-top:25px; }
.lyre-public .lp-account-context p { font-size:.85rem; }
@media(max-width:900px) {
 .lyre-public .lp-header { padding:12px 24px; gap:20px; }
 .lyre-public .lp-nav { gap:18px; }
 .lyre-public .lp-main, .lyre-public .lp-footer, .lyre-public .lyre-shell { width:calc(100% - 48px); }
 .lyre-public .lp-hero { padding:65px 0; }
 .lyre-public .lp-section-heading { grid-template-columns:1fr 2.5fr; gap:25px; }
 .lyre-public .lp-access > div { padding:20px; }
 .lyre-public .identity-frame { gap:35px; }
 .lyre-public .lp-reading-layout { grid-template-columns:180px 1fr; gap:35px; }
 .lyre-public .lp-schema-grid { grid-template-columns:1fr; gap:0; }
}
@media(max-width:640px) {
 .lyre-public .lp-header { flex-wrap:wrap; gap:8px; padding:12px 20px 0; }
 .lyre-public .lp-brand { margin-bottom:7px; }
 .lyre-public .lp-account { margin-left:auto; margin-bottom:7px; }
 .lyre-public .lp-nav { order:3; width:100%; justify-content:space-between; gap:8px; }
 .lyre-public .lp-nav a { font-size:.75rem; padding:10px 0 13px; }
 .lyre-public .lp-main, .lyre-public .lp-footer, .lyre-public .lyre-shell { width:calc(100% - 40px); }
 .lyre-public .lp-hero { padding:50px 0; }
 .lyre-public .lp-hero h1 { font-size:clamp(2.6rem,10.5vw,4rem); }
 .lyre-public .lp-actions { align-items:stretch; gap:12px; }
 .lyre-public .lp-actions .lp-button { width:100%; }
 .lyre-public .lp-actions .lp-text-link { margin-left:0; }
 .lyre-public .lp-section { padding:40px 0; }
 .lyre-public .lp-section-heading, .lyre-public .lp-split { display:block; }
 .lyre-public .lp-section-heading { margin-bottom:25px; }
 .lyre-public .lp-flow { display:block; border-top:0; border-left:1px solid #677b8b; margin-left:5px; }
 .lyre-public .lp-flow li { padding:12px 0 22px 25px; }
 .lyre-public .lp-flow li:not(:last-child)::after { content:'↓'; left:-15px; right:auto; top:auto; bottom:0; padding:0 5px; font-size:1.2rem; }
 .lyre-public .lp-access { grid-template-columns:1fr; }
 .lyre-public .lp-access > div + div { border-left:0; border-top:1px solid var(--lp-line); }
 .lyre-public .lp-system-base { flex-wrap:wrap; gap:10px; }
 .lyre-public .lp-catalogue-status { align-items:start; flex-direction:column; gap:10px; }
 .lyre-public .lp-preview-row { grid-template-columns:1fr 16px; gap:10px; }
 .lyre-public .lp-preview-row > span { grid-column:1; }
 .lyre-public .lp-preview-row b { grid-column:2; grid-row:1; }
 .lyre-public .lp-cta { align-items:start; flex-direction:column; gap:12px; padding:40px 0; }
 .lyre-public .lp-footer { grid-template-columns:1fr 1fr; gap:20px; }
 .lyre-public .lp-footer > div { grid-column:1 / -1; }
 .lyre-public .lp-footer a { min-height:36px; }
 .lyre-public .lp-page-heading { padding:45px 0 25px; }
 .lyre-public .lp-toolbar { flex-direction:column; align-items:stretch; gap:12px; }
 .lyre-public .lp-toolbar > span { padding:0; }
 .lyre-public .lp-capability > summary { grid-template-columns:1fr 24px; gap:12px; padding:22px 0; }
 .lyre-public .lp-object-state { grid-column:1; }
 .lyre-public .lp-object-state small { display:inline; margin-left:12px; }
 .lyre-public .lp-open { grid-row:1; grid-column:2; }
 .lyre-public .lp-object-detail { padding:18px; }
 .lyre-public .lp-code-head { gap:12px; flex-wrap:wrap; }
 .lyre-public .lp-organization header { flex-direction:column; gap:12px; }
 .lyre-public .lp-organization-work, .lyre-public .lp-discovery-feature { grid-template-columns:1fr; }
 .lyre-public .lp-discovery-feature { padding:24px; gap:10px; }
 .lyre-public .lp-reading-layout { display:block; }
 .lyre-public .lp-contents { position:static; margin-bottom:35px; }
 .lyre-public .identity-frame { grid-template-columns:1fr; gap:25px; margin:35px 0; }
 .lyre-public .identity-panel { padding:22px; }
 .lyre-public .registration-fields { grid-template-columns:1fr; }
 .lyre-public .lp-account-context { margin-top:20px; padding-top:15px; }
}
@media(prefers-reduced-motion:reduce) { .lyre-public *, .lyre-public *::before, .lyre-public *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
