:root{--font-family-sans: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 2.5rem;--font-size-4xl: 3.5rem;--line-height-tight: 1.2;--line-height-base: 1.6;--line-height-relaxed: 1.7;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--container-max: 1200px;--container-padding-x: 2rem;--container-padding-x-sm: 1rem;--grid-gap: 2rem;--card-min-col: 350px;--radius-sm: 4px;--radius-md: 12px;--radius-lg: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .25);--shadow-lg: 0 20px 40px rgba(0, 0, 0, .3);--shadow-1: var(--shadow-md);--shadow-hover: var(--shadow-lg), 0 0 20px rgba(78, 205, 196, .2);--card-shine-border: rgba(78, 205, 196, .3);--backdrop-blur: 10px;--duration-rapid: .12s;--duration-fast: .3s;--duration-medium: .4s;--duration-slow: .6s;--duration-hero: 1s;--duration-fade: .8s;--easing-standard: cubic-bezier(.2, 0, .2, 1);--easing-emphasized: cubic-bezier(.175, .885, .32, 1.275);--easing-out: ease-out;--z-negative: -1;--z-base: 0;--z-overlay: 1000;--z-cursor: 9999;--bp-sm: 640px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1280px;--color-black-900: #0c0c0c;--color-black-800: #0f0f0f;--color-black-700: #1a1a1a;--color-white: #ffffff;--color-text: #e0e0e0;--color-text-muted: #b0b0b0;--color-text-subtle: #888;--color-primary: #4ecdc4;--color-primary-hover: #26c6da;--color-secondary: #ff6b6b;--color-secondary-hover: #ff5252;--color-tertiary: #7f3fff;--color-tertiary-hover: #6a2fe0;--color-brand: var(--color-primary);--color-brand-hover: var(--color-primary-hover);--color-accent: var(--color-tertiary);--color-accent-strong: var(--color-tertiary-hover);--color-error: var(--color-secondary);--color-error-strong: var(--color-secondary-hover);--color-success: var(--color-primary);--color-warning: #ffbf3f;--color-surface: rgba(30, 30, 30, .8);--color-surface-2: rgba(20, 20, 20, .9);--color-surface-elevated: var(--color-surface-2);--color-border: rgba(255, 255, 255, .1);--color-overlay: rgba(0, 0, 0, .3);--surface: var(--color-surface);--surface-elevated: var(--color-surface-2);--surface-border: var(--color-border);--text-primary: var(--color-text);--text-secondary: var(--color-text-muted);--text-tertiary: var(--color-text-subtle);--text-heading: var(--color-white);--brand: var(--color-brand);--brand-contrast: var(--color-white);--accent: var(--color-accent);--danger: var(--color-error);--bg-app: linear-gradient(135deg, var(--color-black-900) 0%, var(--color-black-700) 50%, var(--color-black-800) 100%);--bg-hero-gradient: linear-gradient(45deg, var(--color-error), var(--brand), var(--color-accent));--gradient-brand: linear-gradient(135deg, var(--color-error), var(--brand));--bg-scrollbar-thumb: linear-gradient(45deg, var(--color-error), var(--brand));--bg-scrollbar-thumb-hover: linear-gradient(45deg, var(--color-error-strong), var(--color-accent-strong));--border-width-1: 1px;--focus-ring-width: 2px;--focus-ring-color: var(--brand);--particle-size: 2px;--category-color-1: rgba(153,153,255,.9);--category-color-2: rgba(255,153,153,.9);--category-color-3: rgba(102,255,255,.9);--category-color-4: rgba(255,255,153,.9);--category-color-5: rgba(255,153,255,.9);--category-color-4: rgba(191, 127, 255, .9);--category-color-5: rgba(255, 191, 63, .9);--category-color-6: rgba(63, 255, 191, .9);--category-color-7: rgba(127, 63, 255, .9);--category-color-8: rgba(255, 127, 191, .9);--category-color-9: rgba(191, 255, 127, .9);--chart-grid-color: rgba(255, 255, 255, .1);--chart-axis-color: var(--text-tertiary)}[data-theme=light]{--text-primary: #111111;--text-secondary: #555555;--text-tertiary: #777777;--text-heading: #000000;--surface: #ffffff;--surface-elevated: #f7f8fa;--surface-border: rgba(0, 0, 0, .1);--color-surface: #ffffff;--color-surface-elevated: #f7f8fa;--color-border: rgba(0, 0, 0, .1);--color-text: #111111;--color-text-muted: #555555;--color-text-subtle: #777777;--bg-app: linear-gradient(135deg, #fafafa 0%, #f2f2f2 50%, #ffffff 100%);--brand: var(--color-brand);--brand-contrast: #ffffff;--accent: var(--color-accent);--danger: var(--color-error);--bg-scrollbar-thumb: linear-gradient(45deg, var(--color-error), var(--brand));--bg-scrollbar-thumb-hover: linear-gradient(45deg, var(--color-error-strong), var(--color-accent-strong))}*,*:before,*:after{box-sizing:border-box}html{color-scheme:light dark}body{margin:0;min-height:100vh;font-family:var(--font-family-sans, system-ui, sans-serif);line-height:var(--line-height-base, 1.6);background:var(--bg-app, linear-gradient(135deg, #0c0c0c 0%, #1a1a1a 50%, #0f0f0f 100%));background-attachment:fixed;color:var(--color-text, #e0e0e0)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:radial-gradient(1.5px 1.5px at 15% 20%,var(--color-brand, #4ecdc4),transparent),radial-gradient(1.5px 1.5px at 80% 35%,rgba(78,205,196,.7),transparent),radial-gradient(1px 1px at 45% 70%,rgba(255,255,255,.6),transparent),radial-gradient(1.5px 1.5px at 65% 88%,var(--color-brand, #4ecdc4),transparent),radial-gradient(1px 1px at 30% 50%,rgba(255,255,255,.5),transparent),radial-gradient(1.5px 1.5px at 92% 78%,rgba(78,205,196,.6),transparent),radial-gradient(1px 1px at 8% 80%,rgba(255,255,255,.5),transparent);background-size:220px 220px;background-repeat:repeat;animation:site-twinkle 6s ease-in-out infinite,site-drift 90s linear infinite}@keyframes site-twinkle{0%,to{opacity:.35}50%{opacity:.9}}@keyframes site-drift{0%{background-position:0 0}to{background-position:0 -220px}}@media (prefers-reduced-motion: reduce){body:before{animation:none}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-black-700, #1a1a1a)}::-webkit-scrollbar-thumb{background:var(--bg-scrollbar-thumb, linear-gradient(45deg, #ff6b6b, #4ecdc4));border-radius:var(--radius-sm, 4px)}::-webkit-scrollbar-thumb:hover{background:var(--bg-scrollbar-thumb-hover, linear-gradient(45deg, #ff5252, #26c6da))}.ui-particles{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:var(--z-negative, -1);overflow:hidden}.ui-particle{position:absolute;width:var(--particle-size, 2px);height:var(--particle-size, 2px);background:var(--color-brand, #4ecdc4);border-radius:var(--radius-full, 50%);opacity:0;animation:ui-particle-float 6s ease-in-out infinite}@keyframes ui-particle-float{0%,to{transform:translateY(0) translate(0);opacity:0}50%{transform:translateY(-100px) translate(50px);opacity:1}}@media (prefers-reduced-motion: reduce){.ui-particle{animation:none}}.ui-card{position:relative;overflow:hidden;background:var(--color-surface, rgba(30, 30, 30, .8));padding:var(--space-6, 2rem);border-radius:var(--radius-lg, 20px);border:var(--border-width-1, 1px) solid var(--color-border, rgba(255, 255, 255, .1));box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .25));backdrop-filter:blur(var(--backdrop-blur, 10px));-webkit-backdrop-filter:blur(var(--backdrop-blur, 10px))}.ui-card--shine,.ui-card--lift{transition:transform var(--duration-medium, .4s) var(--easing-emphasized, cubic-bezier(.175, .885, .32, 1.275)),box-shadow var(--duration-medium, .4s) var(--easing-emphasized, ease),border-color var(--duration-medium, .4s) var(--easing-emphasized, ease)}.ui-card--shine:before{content:"";position:absolute;inset:0 auto 0 -100%;width:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);transition:left var(--duration-slow, .6s) var(--easing-standard, ease);pointer-events:none}.ui-card--shine:hover:before{left:100%}.ui-card--shine:hover{box-shadow:var(--shadow-hover, 0 20px 40px rgba(0, 0, 0, .3), 0 0 20px rgba(78, 205, 196, .2));border-color:var(--card-shine-border, rgba(78, 205, 196, .3))}.ui-card--shine:hover .ui-card__title{color:var(--color-brand, #4ecdc4)}.ui-card--lift{cursor:pointer}.ui-card--lift:hover{transform:translateY(-10px)}@media (prefers-reduced-motion: reduce){.ui-card--shine,.ui-card--shine:before,.ui-card--lift{transition:none}.ui-card--lift:hover{transform:none}}.ui-card__meta{display:flex;align-items:center;gap:var(--space-4, 1rem);margin-bottom:var(--space-4, 1rem);font-size:var(--font-size-sm, .875rem);color:var(--text-tertiary, #888)}.ui-card__title{font-size:var(--font-size-xl, 1.5rem);font-weight:700;color:var(--text-heading, #fff);margin-bottom:var(--space-4, 1rem);transition:color var(--duration-fast, .3s) var(--easing-standard, ease)}.ui-card__excerpt{color:var(--text-secondary, #b0b0b0);margin-bottom:var(--space-5, 1.5rem);line-height:var(--line-height-relaxed, 1.7)}.ui-link-more{display:inline-flex;align-items:center;gap:var(--space-2, .5rem);color:var(--color-brand, #4ecdc4);text-decoration:none;font-weight:600;transition:transform var(--duration-fast, .3s) var(--easing-standard, ease),color var(--duration-fast, .3s) var(--easing-standard, ease)}.ui-link-more:after{content:"→";transition:transform var(--duration-fast, .3s) var(--easing-standard, ease)}.ui-link-more:hover{transform:translate(5px);color:var(--color-secondary, #ff6b6b)}.ui-link-more:hover:after{transform:translate(5px)}.ui-btn{display:inline-block;font:inherit;padding:.6rem .9rem;border:var(--border-width-1, 1px) solid transparent;border-radius:var(--radius-md, 8px);cursor:pointer;transition:background var(--duration-fast, .3s) var(--easing-standard, ease),box-shadow var(--duration-fast, .3s) var(--easing-standard, ease)}.ui-btn:disabled{opacity:.5;cursor:not-allowed}.ui-btn:focus-visible{outline:var(--focus-ring-width, 2px) solid var(--focus-ring-color, #4ecdc4);outline-offset:2px}.ui-btn--primary{background:var(--color-brand, #0071e3);color:var(--brand-contrast, #fff)}.ui-btn--primary:hover:not(:disabled){background:var(--color-brand-hover, #26c6da)}.ui-btn--ghost{background:var(--color-surface, #fff);color:inherit;border-color:var(--color-border, #d2d2d7)}.ui-btn--danger{background:var(--color-error, #c0362c);color:#fff}.ui-btn--danger:hover:not(:disabled){background:var(--color-error-strong, #ff5252)}.ui-field label{display:block;font-size:var(--font-size-sm, .875rem);margin:.75rem 0 .25rem}.ui-field input{width:100%;box-sizing:border-box;padding:.6rem .75rem;border:var(--border-width-1, 1px) solid var(--color-border, #d2d2d7);border-radius:var(--radius-md, 8px);background:var(--color-surface, #fff);color:inherit}.ui-msg{margin-top:.6rem;font-size:var(--font-size-sm, .875rem);min-height:1.2em;color:var(--color-error, #c00)}.ui-msg--ok{color:var(--color-success, #2a8a3e)}.ui-navbar{position:fixed;top:0;left:0;width:100%;z-index:var(--z-overlay, 1000);padding:var(--space-4, 1rem) 0;background:var(--color-surface-2, rgba(10, 10, 10, .95));backdrop-filter:blur(calc(var(--backdrop-blur, 10px) * 2));-webkit-backdrop-filter:blur(calc(var(--backdrop-blur, 10px) * 2));border-bottom:var(--border-width-1, 1px) solid var(--color-border, rgba(255, 255, 255, .1));transition:transform var(--duration-fast, .3s) var(--easing-standard, ease)}.ui-navbar--hidden{transform:translateY(-100%)}.ui-navbar__container{max-width:var(--container-max, 1200px);margin:0 auto;padding:0 var(--container-padding-x, 2rem);display:flex;align-items:center;justify-content:space-between;gap:var(--space-5, 1.5rem)}.ui-navbar__logo{font-size:var(--font-size-xl, 1.8rem);font-weight:700;color:var(--text-heading, #fff)}.ui-navbar__links{display:flex;list-style:none;gap:var(--space-6, 2rem);padding:0;margin:0 0 0 auto}.ui-navbar__link{position:relative;color:var(--text-primary, #e0e0e0);text-decoration:none;font-weight:500;transition:color var(--duration-fast, .3s) var(--easing-standard, ease),transform var(--duration-fast, .3s) var(--easing-standard, ease)}.ui-navbar__link:hover{color:var(--color-brand, #4ecdc4);transform:translateY(-2px)}.ui-navbar__link:after{content:"";position:absolute;bottom:-5px;left:50%;width:0;height:2px;background:var(--bg-scrollbar-thumb, linear-gradient(45deg, #ff6b6b, #4ecdc4));transform:translate(-50%);transition:width var(--duration-fast, .3s) var(--easing-standard, ease)}.ui-navbar__link:hover:after,.ui-navbar__link--active:after{width:100%}.ui-navbar__link--active{color:var(--color-brand, #4ecdc4)}.ui-account{display:flex;align-items:center;gap:var(--space-3, .75rem)}.ui-account__name{color:var(--text-primary, #e0e0e0);text-decoration:none;font-weight:600;transition:color var(--duration-fast, .3s) var(--easing-standard, ease)}.ui-account__name:hover{color:var(--color-brand, #4ecdc4)}.ui-account__logout{font:inherit;font-size:var(--font-size-sm, .875rem);padding:.3rem .7rem;color:var(--text-secondary, #b0b0b0);background:transparent;border:var(--border-width-1, 1px) solid var(--color-border, rgba(255, 255, 255, .1));border-radius:var(--radius-md, 8px);cursor:pointer;transition:color var(--duration-fast, .3s) var(--easing-standard, ease),border-color var(--duration-fast, .3s) var(--easing-standard, ease)}.ui-account__logout:hover{color:var(--color-error, #ff6b6b);border-color:var(--color-error, #ff6b6b)}.ui-account__logout:focus-visible{outline:var(--focus-ring-width, 2px) solid var(--focus-ring-color, #4ecdc4);outline-offset:2px}@media (max-width: 768px){.ui-navbar__links{display:none}.ui-navbar__container{padding:0 var(--container-padding-x-sm, 1rem)}}@media (prefers-reduced-motion: reduce){.ui-navbar,.ui-navbar__link,.ui-navbar__link:after{transition:none}.ui-navbar__link:hover{transform:none}}.md{--md-accent-rgb: 78, 205, 196;color:var(--text-primary, #e0e0e0);line-height:var(--line-height-relaxed, 1.7);overflow-wrap:anywhere}.md>*:first-child{margin-top:0}.md>*:last-child{margin-bottom:0}.md p{margin:0 0 8px}.md h1{font-size:1.35em;margin:16px 0 6px;font-weight:700}.md h2{font-size:1.15em;margin:14px 0 5px;font-weight:700}.md h3{font-size:1.05em;margin:12px 0 4px;font-weight:600}.md h4,.md h5,.md h6{font-size:1em;margin:10px 0 3px;font-weight:600;color:var(--text-tertiary, #888)}.md ul,.md ol{margin:4px 0 8px 22px;padding:0}.md li{margin-bottom:3px;line-height:1.7}.md li p{margin:0}.md strong{font-weight:700}.md em{font-style:italic}.md hr{border:none;border-top:1px solid var(--surface-border, rgba(255, 255, 255, .1));margin:14px 0}.md a{color:var(--accent, #7f3fff);text-decoration:none}.md a:hover{text-decoration:underline}.md blockquote{margin:10px 0;padding:4px 14px;border-left:3px solid var(--accent, #7f3fff);color:var(--text-secondary, #b0b0b0)}.md code{background:rgba(var(--md-accent-rgb),.12);color:#7fe9e0;padding:1px 6px;border-radius:4px;font-size:.85em;font-family:Fira Mono,Consolas,monospace}.md pre{background:#0000004d;border:1px solid var(--surface-border, rgba(255, 255, 255, .1));border-left:3px solid var(--accent, #7f3fff);border-radius:8px;padding:14px 16px;overflow-x:auto;font-size:13px;margin:10px 0;font-family:Fira Mono,Consolas,monospace;line-height:1.6}.md pre code{background:none;padding:0;color:inherit;font-size:13px}.md .md-code{margin:10px 0}.md .md-code+*{margin-top:0}.md .md-code pre{margin:0;border-radius:0 0 8px 8px;border-top:none}.md-code-bar{display:flex;align-items:center;justify-content:space-between;padding:5px 12px;background:var(--surface, rgba(255, 255, 255, .04));border:1px solid var(--surface-border, rgba(255, 255, 255, .1));border-bottom:none;border-radius:8px 8px 0 0}.md-code-lang{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-tertiary, #888);font-family:Fira Mono,Consolas,monospace}.md-code-copy{background:transparent;border:1px solid var(--surface-border, rgba(255, 255, 255, .1));color:var(--text-secondary, #b0b0b0);font-size:11px;padding:2px 10px;border-radius:6px;cursor:pointer;font-family:inherit;transition:color .2s,border-color .2s,background .2s}.md-code-copy:hover{color:var(--accent, #7f3fff);border-color:var(--accent, #7f3fff);background:rgba(var(--md-accent-rgb),.08)}.md table{border-collapse:collapse;font-size:13px;width:100%;margin:12px 0;border:1px solid var(--surface-border, rgba(255, 255, 255, .1));border-radius:10px;overflow:hidden}.md th{background:var(--surface, rgba(255, 255, 255, .06));font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--accent, #7f3fff);padding:9px 14px;border-bottom:2px solid rgba(var(--md-accent-rgb),.35);text-align:left;white-space:nowrap}.md td{padding:8px 14px;border-bottom:1px solid var(--surface-border, rgba(255, 255, 255, .1));vertical-align:top;line-height:1.6;color:var(--text-primary, #e0e0e0)}.md tbody tr:last-child td{border-bottom:none}.md tbody tr:nth-child(2n) td{background:#ffffff06}.md tbody tr:hover td{background:rgba(var(--md-accent-rgb),.07)}.md td code{font-size:12px}.md img{max-width:100%;border-radius:8px}body{padding-top:72px}.page{min-height:100vh}.site-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);max-width:820px;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-4)}.site-title{font-size:var(--font-size-xl);font-weight:600;color:var(--text-heading);text-decoration:none}.site-nav{display:flex;gap:var(--space-4)}.site-nav a{color:var(--text-secondary);text-decoration:none;font-size:var(--font-size-sm)}.site-nav a:hover{color:var(--brand)}.site-main{max-width:820px;margin:0 auto;padding:0 var(--space-4) var(--space-8)}.site-main.wide{max-width:1280px}.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}@media (max-width: 900px){.post-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 560px){.post-grid{grid-template-columns:1fr}}.post-grid .ui-card{display:flex;flex-direction:column}.post-grid .ui-card__title{text-decoration:none}.post-grid .ui-link-more{margin-top:auto}.home-slogan{text-align:center;margin:calc(var(--space-7) * 2) 0 calc(var(--space-8) * 2)}.home-slogan-title{margin:0;font-size:clamp(2.25rem,6vw,3.5rem);font-weight:800;line-height:var(--line-height-tight);background:var(--bg-scrollbar-thumb, linear-gradient(45deg, #ff6b6b, #4ecdc4));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.home-slogan-subtitle{margin:var(--space-3) 0 0;font-size:var(--font-size-lg);color:var(--text-secondary)}.post-title{font-size:var(--font-size-2xl);color:var(--text-heading);margin:var(--space-4) 0 var(--space-3);line-height:var(--line-height-tight)}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);color:var(--text-tertiary);font-size:var(--font-size-sm)}.tag{color:var(--accent)}.badge{padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--surface-elevated);border:var(--border-width-1) solid var(--surface-border);color:var(--text-secondary);font-size:var(--font-size-xs)}.back{margin-top:var(--space-7)}.back a{color:var(--text-secondary);text-decoration:none}.back a:hover{color:var(--brand)}.md.prose-blog{font-size:var(--font-size-md);line-height:var(--line-height-relaxed)}.md-music{margin:var(--space-5) 0;padding:var(--space-4);background:var(--surface);border:var(--border-width-1) solid var(--surface-border);border-radius:var(--radius-md)}.md-music-title{color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-2)}.md-music-audio{width:100%}.admin-head{display:flex;align-items:center;justify-content:space-between}.admin-list{list-style:none;margin:0 0 var(--space-6);padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.admin-list li{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:var(--border-width-1) solid var(--surface-border)}.admin-list a{color:var(--text-primary);text-decoration:none}.admin-list a:hover{color:var(--brand)}.cat-admin{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.cat-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:2px var(--space-3);border-radius:var(--radius-full);background:var(--surface-elevated);border:var(--border-width-1) solid var(--surface-border);color:var(--text-secondary);font-size:var(--font-size-sm)}.cat-chip .btn-link{font-size:var(--font-size-xs)}.cat-chip .btn-link.danger{margin-left:0}.cat-add{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-6);max-width:360px}.cat-select{display:flex;flex-direction:column;gap:var(--space-2)}.cat-select-label{color:var(--text-tertiary);font-size:var(--font-size-sm)}.cat-options{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4)}.cat-option{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer}.editor{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);align-items:start}@media (max-width: 768px){.editor{grid-template-columns:1fr}}.editor-fields{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.input{width:100%;padding:var(--space-2) var(--space-3);background:var(--surface-elevated);border:var(--border-width-1) solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text-primary);font:inherit}.input:focus{outline:var(--focus-ring-width) solid var(--focus-ring-color)}.editor-body{width:100%;min-height:60vh;padding:var(--space-3);background:var(--surface-elevated);border:var(--border-width-1) solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-sm);line-height:var(--line-height-base);resize:vertical}.editor-body.drag-over{border-style:dashed;border-color:var(--brand);outline:var(--focus-ring-width) solid var(--focus-ring-color)}.editor-actions{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3)}.editor-actions .spacer{flex:1}.media-lib{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-3);background:var(--surface-elevated);border:var(--border-width-1) solid var(--surface-border);border-radius:var(--radius-sm);max-height:40vh;overflow:auto}.media-lib-item{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.media-lib-thumb{display:flex;align-items:center;justify-content:center;aspect-ratio:1;padding:0;background:var(--surface);border:var(--border-width-1) solid var(--surface-border);border-radius:var(--radius-sm);cursor:pointer;overflow:hidden}.media-lib-thumb:hover{border-color:var(--brand)}.media-lib-thumb img{width:100%;height:100%;object-fit:cover}.media-lib-audio{font-size:1.75rem}.media-lib-meta{display:flex;flex-direction:column;min-width:0}.media-lib-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-sm)}.media-lib-slug{color:var(--text-tertiary);font-size:var(--font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-preview{background:var(--surface);border:var(--border-width-1) solid var(--surface-border);border-radius:var(--radius-md);padding:var(--space-5);max-height:85vh;overflow:auto}.btn{padding:var(--space-2) var(--space-4);background:var(--brand);color:var(--brand-contrast);border:none;border-radius:var(--radius-sm);font:inherit;cursor:pointer}.btn.ghost{background:transparent;color:var(--text-primary);border:var(--border-width-1) solid var(--surface-border)}.btn:hover{filter:brightness(1.05)}.btn-link{background:none;border:none;color:var(--text-secondary);cursor:pointer;font:inherit;padding:0}.btn-link:hover{color:var(--brand)}.btn-link.danger{color:var(--danger);margin-left:auto}.muted{color:var(--text-tertiary)}.error{color:var(--danger)}
