:root {
  --ink: #11233c;
  --muted: #5b6880;
  --surface: #ffffff;
  --tint: #eef8fa;
  --line: #dce7ed;
  --brand: #057a86;
  --brand-dark: #035965;
  --blue: #1f5fd1;
  --warm: #ffbd59;
  --danger: #b42318;
  --success: #087443;
  --radius: 1rem;
  --shadow: 0 18px 48px rgba(17, 35, 60, .1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: #f9fcfd; font: 16px/1.6 ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: var(--brand-dark); text-decoration-thickness: .1em; text-underline-offset: .16em; }
a:hover { color: var(--blue); }
img { max-width: 100%; height: auto; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid #f5a524; outline-offset: 3px; }
.container { width: min(1120px, calc(100% - 2rem)); margin-inline: auto; }
.site-header { position: sticky; top: 0; z-index: 30; border-bottom: 1px solid rgba(220, 231, 237, .85); background: rgba(255, 255, 255, .94); backdrop-filter: blur(14px); }
.nav { display: flex; min-height: 4.75rem; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: inline-flex; align-items: center; gap: .65rem; color: var(--ink); font-size: 1.1rem; font-weight: 800; letter-spacing: -.02em; text-decoration: none; }
.brand-logo { display: block; flex: 0 0 auto; width: 2.4rem; height: 2.4rem; }
.brand-logo-full { width: auto; height: 3.25rem; }
.brand-mark { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; border-radius: .75rem; color: white; background: linear-gradient(135deg, var(--blue), var(--brand)); box-shadow: 0 7px 18px rgba(5, 122, 134, .25); }
.nav-links { display: flex; align-items: center; gap: .25rem; }
.nav-links a { padding: .48rem .7rem; border-radius: .55rem; color: var(--muted); font-size: .9rem; font-weight: 700; text-decoration: none; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--brand-dark); background: var(--tint); }
.nav-toggle { display: none; border: 0; border-radius: .5rem; padding: .5rem; color: var(--ink); background: var(--tint); }
.button { display: inline-flex; min-height: 2.8rem; align-items: center; justify-content: center; gap: .5rem; border: 1px solid transparent; border-radius: .7rem; padding: .65rem 1rem; color: white; background: var(--brand); font-weight: 800; text-decoration: none; transition: transform .15s, background .15s; }
.button:hover { color: white; background: var(--brand-dark); transform: translateY(-1px); }
.button.secondary { color: var(--brand-dark); border-color: #b8d9dd; background: white; }
.button.secondary:hover { background: var(--tint); }
.button.danger { background: var(--danger); }
.button.small { min-height: 2.2rem; padding: .4rem .65rem; font-size: .85rem; }
.hero { overflow: hidden; padding: clamp(4.25rem, 9vw, 8rem) 0 5rem; background: radial-gradient(circle at 85% 16%, #c9f5ef 0, rgba(201,245,239,0) 30%), radial-gradient(circle at 6% 90%, #dceaff 0, rgba(220,234,255,0) 31%), #f9fcfd; }
.hero-grid { display: grid; align-items: center; grid-template-columns: 1.16fr .84fr; gap: 4rem; }
.eyebrow { display: inline-flex; align-items: center; gap: .45rem; margin: 0 0 1.1rem; color: var(--brand-dark); font-size: .85rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.eyebrow::before { width: .55rem; height: .55rem; border-radius: 50%; background: var(--warm); content: ""; }
h1, h2, h3 { margin-top: 0; line-height: 1.15; letter-spacing: -.035em; }
h1 { max-width: 12ch; margin-bottom: 1.25rem; font-size: clamp(2.7rem, 6vw, 5.25rem); }
h2 { font-size: clamp(1.8rem, 3.4vw, 3rem); }
h3 { font-size: 1.2rem; }
.lead { max-width: 60ch; color: var(--muted); font-size: clamp(1.05rem, 1.8vw, 1.2rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.hero-card { position: relative; min-height: 23rem; padding: 1.5rem; border: 1px solid rgba(255,255,255,.8); border-radius: 1.5rem; background: linear-gradient(145deg, #0b4267, #087b87); box-shadow: var(--shadow); color: white; }
.hero-card::after { position: absolute; right: -3.3rem; bottom: -3.3rem; width: 14rem; height: 14rem; border: 1.5rem solid rgba(255,255,255,.12); border-radius: 50%; content: ""; }
.terminal { position: relative; z-index: 1; margin-top: 4.5rem; border: 1px solid rgba(255,255,255,.23); border-radius: .9rem; padding: 1.1rem; background: rgba(3, 30, 58, .38); font: .9rem/1.8 ui-monospace, SFMono-Regular, Consolas, monospace; }
.terminal-top { display: flex; gap: .35rem; margin-bottom: 1rem; }.terminal-top i { width: .6rem; height: .6rem; border-radius: 50%; background: #ffbd59; }.terminal-top i:nth-child(2) { background: #7ce5c5; }.terminal-top i:nth-child(3) { background: #a6c8ff; }.terminal .accent { color: #9af7de; }
.section { padding: clamp(4rem, 7vw, 6.5rem) 0; }
.section.tint { background: var(--tint); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }.section-heading p { max-width: 52ch; margin: 0; color: var(--muted); }
.grid { display: grid; gap: 1.25rem; }.grid.three { grid-template-columns: repeat(3, 1fr); }.grid.two { grid-template-columns: repeat(2, 1fr); }
.card { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem; background: var(--surface); box-shadow: 0 4px 16px rgba(17,35,60,.025); }.card h3 a { color: var(--ink); text-decoration: none; }.card h3 a:hover { color: var(--brand); }
.feature-card { min-height: 100%; }.feature-number { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; margin-bottom: 1rem; border-radius: .7rem; color: var(--brand-dark); background: #d8f2ee; font-weight: 900; }
.meta { display: flex; flex-wrap: wrap; gap: .65rem; margin: 0 0 .8rem; color: var(--muted); font-size: .85rem; }.pill { display: inline-flex; border-radius: 99px; padding: .15rem .6rem; color: var(--brand-dark); background: #e2f5f1; font-size: .78rem; font-weight: 800; }
.project-art { display: grid; min-height: 10.5rem; place-items: center; margin: -1.4rem -1.4rem 1.25rem; border-radius: var(--radius) var(--radius) .5rem .5rem; color: white; background: linear-gradient(130deg, #1e5ec9, #09909a); font-size: 2.8rem; font-weight: 900; }.project-art img { width: 100%; height: 10.5rem; object-fit: cover; }
.content-card-media { height: 10.5rem; overflow: hidden; margin: -1.4rem -1.4rem 1.25rem; border-radius: var(--radius) var(--radius) .5rem .5rem; background: var(--tint); }.content-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }.card:hover .content-card-media img { transform: scale(1.04); }.article-featured-media { margin: 0 0 2rem; }.article-featured-media img { display: block; width: 100%; max-height: 32rem; object-fit: cover; }
.article-content { max-width: 760px; }.article-content p, .article-content li { color: #34445d; font-size: 1.06rem; }.article-content img { border-radius: .75rem; }
.page-hero { padding: 4.5rem 0 2.5rem; background: var(--tint); }.page-hero h1 { max-width: 18ch; margin-bottom: .75rem; font-size: clamp(2.4rem, 5vw, 4.2rem); }.page-hero p { max-width: 65ch; color: var(--muted); }
.content-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 3rem; }.side-card { align-self: start; border-left: 3px solid var(--brand); padding: 1rem 0 1rem 1.1rem; }.side-card ul { padding-left: 1.2rem; }
.form-card { max-width: 720px; }.field { display: grid; gap: .35rem; margin-bottom: 1.1rem; }.field label { font-weight: 800; }.field input, .field textarea, .field select { width: 100%; border: 1px solid #b9c9d5; border-radius: .62rem; padding: .72rem .8rem; color: var(--ink); background: white; }.field textarea { min-height: 9rem; resize: vertical; }.field small { color: var(--muted); }.field .input-error { color: var(--danger); font-size: .88rem; }.honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; }
.thumbnail-upload { margin: 1.5rem 0; border: 1px solid var(--line); border-radius: .85rem; padding: 1.15rem; background: #f8fafc; }.thumbnail-upload legend { padding: 0 .35rem; }.thumbnail-current { display: flex; align-items: center; gap: 1rem; margin: 0 0 1.15rem; }.thumbnail-current img { width: 8rem; height: 5.5rem; border-radius: .6rem; object-fit: cover; }.thumbnail-current p { margin: 0; }
.flash { margin: 1rem auto; border-radius: .7rem; padding: .85rem 1rem; font-weight: 700; }.flash.success { border: 1px solid #9ee1bd; color: #075a32; background: #ebfbf1; }.flash.error { border: 1px solid #f3b4ae; color: #8e1a10; background: #fff1f0; }.flash.info { border: 1px solid #a9d4e9; color: #084b68; background: #effaff; }
.empty { padding: 2.5rem; border: 1px dashed #b9c9d5; border-radius: var(--radius); color: var(--muted); text-align: center; }
.pagination { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }.pagination a, .pagination span { min-width: 2.45rem; padding: .45rem; border: 1px solid var(--line); border-radius: .5rem; background: white; text-align: center; text-decoration: none; }.pagination .current { color: white; border-color: var(--brand); background: var(--brand); }
.comments { margin-top: 3rem; }.comment { margin: 1rem 0; border-left: 3px solid #c7e9e5; padding: .75rem 1rem; background: #fbfefe; }.comment p { margin-bottom: 0; }
.site-footer { padding: 3rem 0; color: #c8d7e8; background: #102c49; }.footer-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 2rem; }.site-footer h2 { color: white; font-size: 1.25rem; }.site-footer a { color: #d5f4f0; }.site-footer p { color: #b8c8da; }.footer-bottom { margin-top: 2rem; border-top: 1px solid rgba(255,255,255,.15); padding-top: 1.25rem; color: #9bb0c8; font-size: .88rem; }
.consent { position: fixed; z-index: 40; right: 1rem; bottom: 1rem; width: min(480px, calc(100% - 2rem)); border: 1px solid #c8d9e2; border-radius: 1rem; padding: 1.15rem; background: white; box-shadow: var(--shadow); }.consent p { margin: .35rem 0 1rem; color: var(--muted); font-size: .9rem; }.consent-actions { display: flex; flex-wrap: wrap; gap: .55rem; }

/* Admin */
.admin-body { background: #f4f7fb; }.admin-shell { display: grid; min-height: 100vh; grid-template-columns: 250px 1fr; }.admin-sidebar { padding: 1.5rem; color: #cbd7e4; background: #102c49; }.admin-sidebar .brand { margin-bottom: 2rem; color: white; }.admin-nav { display: grid; gap: .3rem; }.admin-nav a { border-radius: .55rem; padding: .58rem .7rem; color: #cbd7e4; font-size: .9rem; font-weight: 700; text-decoration: none; }.admin-nav a:hover, .admin-nav a[aria-current="page"] { color: white; background: rgba(255,255,255,.13); }.admin-main { min-width: 0; }.admin-topbar { display: flex; min-height: 4.75rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); padding: 0 2rem; background: white; }.admin-content { padding: 2rem; }.admin-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }.admin-title h1 { margin: 0; font-size: 2rem; }.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }.stat { border: 1px solid var(--line); border-radius: .85rem; padding: 1rem; background: white; }.stat strong { display: block; font-size: 1.8rem; }.stat span { color: var(--muted); font-size: .86rem; }.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: .85rem; background: white; }.data-table { width: 100%; border-collapse: collapse; font-size: .92rem; }.data-table th, .data-table td { border-bottom: 1px solid var(--line); padding: .8rem; text-align: left; vertical-align: top; }.data-table th { color: var(--muted); background: #f8fafc; font-size: .78rem; letter-spacing: .04em; text-transform: uppercase; }.data-table tr:last-child td { border-bottom: 0; }.inline-form { display: inline; }.status { display: inline-flex; border-radius: 99px; padding: .13rem .5rem; font-size: .75rem; font-weight: 800; }.status.published, .status.approved, .status.read { color: #075a32; background: #dcf8e7; }.status.draft, .status.pending, .status.unread { color: #785600; background: #fff1c6; }.status.rejected, .status.spam, .status.archived { color: #8e1a10; background: #ffe2df; }.admin-form { max-width: 900px; }.admin-form .split { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }.help { color: var(--muted); font-size: .86rem; }.notice { border-left: 4px solid var(--blue); padding: 1rem; background: #eef6ff; }.actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }

@media (max-width: 850px) { .hero-grid, .content-wrap, .footer-grid { grid-template-columns: 1fr; gap: 2rem; }.hero-card { min-height: 19rem; }.grid.three { grid-template-columns: repeat(2, 1fr); }.content-wrap .side-card { order: -1; }.admin-shell { grid-template-columns: 1fr; }.admin-sidebar { display: none; }.admin-content { padding: 1.25rem; }.stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 650px) { .nav { min-height: 4.2rem; }.nav-toggle { display: inline-grid; }.nav-links { display: none; position: absolute; top: 4.2rem; right: 1rem; left: 1rem; flex-direction: column; align-items: stretch; border: 1px solid var(--line); border-radius: .8rem; padding: .5rem; background: white; box-shadow: var(--shadow); }.nav-links.open { display: flex; }.nav-links a { padding: .7rem; }.grid.three, .grid.two { grid-template-columns: 1fr; }.section-heading, .admin-title { align-items: start; flex-direction: column; gap: 1rem; }.hero { padding-top: 3.25rem; }.admin-topbar { padding: 0 1.25rem; }.admin-form .split { grid-template-columns: 1fr; }.stats { grid-template-columns: 1fr 1fr; } }

/* Public site: vivid, shader-inspired visual system (native CSS/SVG, no client bundle). */
.public-site {
  --ink: #eaf7ff;
  --muted: #aab7c7;
  --surface: #0a1321;
  --tint: #0d1929;
  --line: rgba(168, 210, 230, .16);
  --brand: #13c7df;
  --brand-dark: #85eeff;
  --blue: #51a7ff;
  --warm: #ff824c;
  color: var(--ink);
  background: #05080f;
}
.public-site a { color: #a7f4ff; }
.public-site a:hover { color: #fff; }
.public-site .site-header {
  border-color: rgba(255, 255, 255, .1);
  background: rgba(5, 8, 15, .82);
}
.public-site .brand { color: #fff; }
.public-site .brand-logo { width: 2.5rem; height: 2.5rem; filter: drop-shadow(0 0 8px rgba(30, 116, 255, .24)); }
.public-site .brand-logo-full { width: auto; height: 3.25rem; }
.public-site .brand-mark {
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid rgba(255, 255, 255, .65);
  border-radius: 50%;
  background: transparent;
  box-shadow: 0 0 22px rgba(104, 235, 255, .38);
  font-family: Georgia, serif;
  font-size: 1.3rem;
  font-weight: 500;
}
.public-site .nav-links a { color: rgba(255, 255, 255, .73); font-weight: 500; }
.public-site .nav-links a:hover,
.public-site .nav-links a[aria-current="page"] { color: #fff; background: rgba(255,255,255,.09); }
.nav-contact {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  min-height: 2.35rem;
  border-radius: 999px;
  padding: .12rem .12rem .12rem 1rem;
  color: #0a101c !important;
  background: #fff;
  font-size: .76rem;
  font-weight: 800;
  text-decoration: none;
  transition: transform .2s, background .2s;
}
.nav-contact b {
  display: grid;
  width: 2.1rem;
  height: 2.1rem;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, #12cce2, #ff6a3d);
  font-size: 1rem;
}
.nav-contact:hover { color: #07111a !important; background: #dffbff; transform: translateY(-2px); }
.public-site .nav-toggle { color: #fff; background: rgba(255,255,255,.1); }
.public-site .section { background: #070c15; }
.public-site .section.tint { background: #0c1725; }
.public-site .section-heading p,
.public-site .lead,
.public-site .card p,
.public-site .article-content p,
.public-site .article-content li { color: var(--muted); }
.public-site .card { border-color: var(--line); background: linear-gradient(145deg, rgba(18, 32, 50, .94), rgba(8, 15, 26, .98)); box-shadow: 0 15px 35px rgba(0, 0, 0, .16); }
.public-site .card h3 a { color: #fff; }
.public-site .card h3 a:hover { color: #8befff; }
.public-site .feature-number { color: #051018; background: linear-gradient(135deg, #73f1ff, #72a8ff); }
.public-site .pill { color: #b8fbff; background: rgba(19, 199, 223, .14); }
.public-site .meta { color: #a5b7c6; }
.public-site .button { border-color: transparent; color: #061018; background: #9bf5ff; }
.public-site .button:hover { color: #061018; background: #fff; }
.public-site .button.secondary { color: #dffbff; border-color: rgba(151, 237, 255, .4); background: transparent; }
.public-site .button.secondary:hover { background: rgba(255,255,255,.11); }
.public-site .site-footer { border-top: 1px solid rgba(255,255,255,.1); background: #04070c; }
.public-site .site-footer .brand { color: #fff; }
.public-site .site-footer p { color: #93a5b5; }
.public-site .footer-bottom { border-color: rgba(255,255,255,.1); }
.public-site .page-hero { position: relative; overflow: hidden; padding: 7rem 0 3.25rem; background: radial-gradient(circle at 82% 24%, rgba(0, 206, 230, .29), transparent 24%), radial-gradient(circle at 72% 8%, rgba(255, 104, 65, .25), transparent 18%), #070c15; }
.public-site .page-hero::before { position: absolute; inset: 0; opacity: .35; background-image: linear-gradient(rgba(130,230,255,.1) 1px, transparent 1px), linear-gradient(90deg, rgba(130,230,255,.1) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to right, #000, transparent 85%); content: ""; }
.public-site .page-hero .container { position: relative; }
.public-site .page-hero p { color: var(--muted); }
.public-site .side-card { border-color: #2cdaed; background: rgba(17, 32, 50, .55); }
.public-site .field input,
.public-site .field textarea,
.public-site .field select { border-color: rgba(151, 237, 255, .28); color: #effbff; background: rgba(3, 8, 15, .5); }
.public-site .field select option { color: #eaf7ff; background: #0d1929; }
.public-site .table-wrap { border-color: var(--line); background: #0d1929; }

/* Full-screen home hero. Mesh layers are deliberately decorative and ignored by assistive technology. */
.page-home .site-header { position: absolute; width: 100%; border-bottom: 0; background: transparent; backdrop-filter: none; }
.shader-hero { position: relative; isolation: isolate; display: grid; min-height: max(43rem, 100svh); overflow: hidden; color: #fff; background: #020407; }
.shader-defs { position: absolute; width: 0; height: 0; }
.shader-mesh,
.shader-wireframe { position: absolute; z-index: -2; inset: -12%; overflow: hidden; pointer-events: none; }
.shader-mesh { background: radial-gradient(circle at var(--mouse-x, 68%) var(--mouse-y, 24%), rgba(255, 136, 63, .72), transparent 12%), radial-gradient(circle at 68% 37%, rgba(19, 205, 229, .68), transparent 30%), radial-gradient(circle at 18% 90%, rgba(5, 55, 80, .8), transparent 27%), linear-gradient(120deg, #020307 7%, #062433 45%, #0f2540 70%, #210e17 100%); }
.shader-mesh i { position: absolute; display: block; width: 45vw; height: 45vw; border-radius: 44% 56% 62% 38% / 45% 42% 58% 55%; filter: blur(38px); mix-blend-mode: screen; opacity: .62; animation: bty-mesh-drift 17s ease-in-out infinite alternate; }
.shader-mesh i:nth-child(1) { top: -17%; right: 7%; background: #0bf1ff; animation-delay: -3s; }
.shader-mesh i:nth-child(2) { right: -10%; bottom: -29%; width: 56vw; height: 54vw; background: #ff6e3c; animation-duration: 21s; animation-delay: -11s; }
.shader-mesh i:nth-child(3) { bottom: -20%; left: 17%; width: 52vw; height: 44vw; background: #076ca1; animation-duration: 19s; animation-delay: -7s; }
.shader-mesh i:nth-child(4) { top: 22%; left: -18%; width: 38vw; height: 38vw; background: #0a8bb0; animation-duration: 23s; animation-delay: -15s; }
.shader-wireframe { z-index: -1; opacity: .23; background-image: linear-gradient(57deg, transparent 46%, rgba(201,255,255,.62) 47%, transparent 48%), linear-gradient(-38deg, transparent 47%, rgba(255,191,155,.6) 48%, transparent 49%), linear-gradient(0deg, transparent 49%, rgba(126,246,255,.45) 50%, transparent 51%); background-size: 220px 160px, 280px 200px, 100% 138px; transform: perspective(380px) rotateX(60deg) translateY(-12%); transform-origin: center; mask-image: linear-gradient(to bottom, transparent, #000 23%, rgba(0,0,0,.5)); }
.shader-hero-content { position: relative; display: flex; min-height: inherit; align-items: flex-end; justify-content: space-between; gap: 2rem; padding-top: 9.5rem; padding-bottom: clamp(5rem, 10vw, 8rem); }
.shader-copy { max-width: 48rem; animation: bty-reveal .8s .08s both; }
.shader-badge { display: inline-flex; align-items: center; gap: .55rem; margin: 0 0 1.65rem; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: .48rem .9rem; color: rgba(255,255,255,.9); background: rgba(255,255,255,.08); box-shadow: inset 0 1px rgba(255,255,255,.18); backdrop-filter: blur(15px); font-size: clamp(.72rem, 1.4vw, .84rem); font-weight: 650; letter-spacing: .035em; }
.shader-badge span { color: #9ef9ff; text-shadow: 0 0 14px #25dcec; }
.shader-copy h1 { max-width: none; margin: 0; color: #fff; font-size: clamp(4.35rem, 11.2vw, 10.4rem); line-height: .79; letter-spacing: -.078em; }
.shader-copy h1 span,
.shader-copy h1 strong,
.shader-copy h1 em { display: block; }
.shader-copy h1 .shader-kicker { margin: 0 0 .13em; color: transparent; background: linear-gradient(105deg, #fff 7%, #91f4ff 37%, #ffae7e 72%, #fff 93%); background-size: 180% 100%; -webkit-background-clip: text; background-clip: text; filter: url(#bty-text-glow); font-size: .56em; font-weight: 360; letter-spacing: -.04em; animation: bty-shimmer 8s linear infinite; }
.shader-copy h1 strong { font-weight: 900; text-shadow: 0 9px 45px rgba(0,0,0,.24); }
.shader-copy h1 em { margin-top: .08em; color: rgba(255,255,255,.79); font-size: .48em; font-weight: 300; letter-spacing: -.04em; }
.shader-lead { max-width: 39rem; margin: 2rem 0 0; color: rgba(237, 251, 255, .76); font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.7; }
.shader-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.shader-button { display: inline-flex; min-height: 3.25rem; align-items: center; justify-content: center; gap: .7rem; border: 1px solid transparent; border-radius: 999px; padding: .85rem 1.4rem; color: #fff !important; font-size: .86rem; font-weight: 800; letter-spacing: .01em; text-decoration: none; transition: transform .2s, box-shadow .2s, background .2s; }
.shader-button:hover { transform: translateY(-3px) scale(1.02); }
.shader-button.ghost { border-color: rgba(255,255,255,.32); background: rgba(5, 14, 22, .23); box-shadow: inset 0 1px rgba(255,255,255,.12); backdrop-filter: blur(9px); }
.shader-button.ghost:hover { border-color: #a4f7ff; background: rgba(255,255,255,.13); }
.shader-button.primary { border-color: rgba(255,255,255,.2); background: linear-gradient(105deg, #0cc5dc, #ff7042); box-shadow: 0 9px 28px rgba(0, 201, 225, .22); }
.shader-button.primary:hover { box-shadow: 0 13px 36px rgba(255, 116, 68, .34); }
.shader-button.primary span { font-size: 1.1rem; }
.shader-orbit { position: relative; flex: 0 0 auto; display: grid; width: clamp(6.7rem, 12vw, 10rem); height: clamp(6.7rem, 12vw, 10rem); place-items: center; margin: 0 clamp(.25rem, 3vw, 2rem) clamp(.4rem, 3vw, 2rem) 0; animation: bty-reveal .8s .38s both; }
.shader-pulse { width: 54%; height: 54%; border-radius: 50%; background: radial-gradient(circle at 34% 25%, #fff, #70eeff 16%, #0da6c4 43%, #ff7542 74%, #1a0e14 100%); box-shadow: 0 0 0 1px rgba(255,255,255,.5), 0 0 20px #22e4f1, 0 0 51px rgba(255,105,61,.64); animation: bty-pulse 3.8s ease-in-out infinite; }
.shader-orbit svg { position: absolute; inset: -9%; width: 118%; height: 118%; overflow: visible; animation: bty-orbit-spin 20s linear infinite; }
.shader-orbit text { fill: rgba(255,255,255,.82); font-size: 8.5px; font-weight: 800; letter-spacing: 1.05px; }
.shader-scroll { position: absolute; bottom: 1.85rem; left: max(1rem, calc((100% - 1120px) / 2)); display: inline-flex; align-items: center; gap: .62rem; color: rgba(255,255,255,.7) !important; font-size: .7rem; font-weight: 800; letter-spacing: .11em; text-decoration: none; text-transform: uppercase; }
.shader-scroll span { display: block; width: 1.9rem; height: 1.9rem; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; }
.shader-scroll span::after { display: block; content: "↓"; text-align: center; line-height: 1.7rem; animation: bty-scroll-bob 1.7s ease-in-out infinite; }
@keyframes bty-mesh-drift { from { transform: translate3d(-4%, -2%, 0) rotate(0deg) scale(.9); } to { transform: translate3d(8%, 7%, 0) rotate(45deg) scale(1.12); } }
@keyframes bty-shimmer { to { background-position: 180% 0; } }
@keyframes bty-pulse { 0%, 100% { transform: scale(.94); filter: hue-rotate(0deg); } 50% { transform: scale(1.08); filter: hue-rotate(22deg); } }
@keyframes bty-orbit-spin { to { transform: rotate(360deg); } }
@keyframes bty-scroll-bob { 50% { transform: translateY(3px); } }
@keyframes bty-reveal { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@media (max-width: 700px) {
  .nav-contact { display: none; }
  .public-site .nav-links { border-color: rgba(255,255,255,.15); background: #07101b; }
  .shader-hero { min-height: 43rem; }
  .shader-hero-content { display: block; padding-top: 8.6rem; padding-bottom: 8rem; }
  .shader-copy h1 { font-size: clamp(3.9rem, 18vw, 6.8rem); }
  .shader-lead { max-width: 30rem; margin-top: 1.55rem; font-size: 1rem; }
  .shader-orbit { position: absolute; right: .25rem; bottom: 3.9rem; width: 6.8rem; height: 6.8rem; margin: 0; opacity: .9; }
  .shader-scroll { bottom: 1.35rem; }
  .shader-mesh i { width: 76vw; height: 76vw; filter: blur(30px); }
  .public-site .page-hero { padding-top: 6.3rem; }
}
@media (prefers-reduced-motion: reduce) {
  .shader-mesh i,
  .shader-copy,
  .shader-orbit,
  .shader-copy h1 .shader-kicker,
  .shader-pulse,
  .shader-orbit svg,
  .shader-scroll span::after { animation: none; }
  .shader-button { transition: none; }
}

/* PulseFit-inspired visual refresh: restrained, light, and typography-led. */
:root {
  --pulse-ink: #111827;
  --pulse-muted: #6b7280;
  --pulse-paper: #f8fafc;
  --pulse-card: #ffffff;
  --pulse-line: #e5e7eb;
  --pulse-accent: #3b82f6;
  --pulse-accent-dark: #2563eb;
  --pulse-shadow: 0 20px 55px rgba(15, 23, 42, .08);
  --pulse-shadow-hover: 0 24px 65px rgba(15, 23, 42, .13);
}

.container { width: min(1280px, calc(100% - 3rem)); }
.public-site {
  --ink: var(--pulse-ink);
  --muted: var(--pulse-muted);
  --surface: var(--pulse-card);
  --tint: #f1f5f9;
  --line: var(--pulse-line);
  --brand: var(--pulse-accent);
  --brand-dark: var(--pulse-accent-dark);
  --blue: var(--pulse-accent);
  color: var(--pulse-ink);
  background: var(--pulse-paper);
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.public-site a { color: var(--pulse-ink); }
.public-site a:hover { color: var(--pulse-accent-dark); }
.public-site .site-header,
.page-home .site-header {
  position: sticky;
  top: .75rem;
  z-index: 30;
  width: min(1280px, calc(100% - 2rem));
  margin: 0 auto;
  border: 1px solid rgba(229, 231, 235, .9);
  border-radius: 999px;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.public-site .nav { display: grid; min-height: 4.35rem; grid-template-columns: 1fr auto 1fr; gap: 1rem; padding: 0 .65rem 0 1rem; }
.public-site .brand { color: var(--pulse-ink); font-weight: 800; }
.public-site .brand-logo { width: 2.15rem; height: 2.15rem; filter: none; }
.public-site .brand-logo-full { width: auto; height: 3.35rem; }
.public-site .brand-mark {
  width: 2.15rem;
  height: 2.15rem;
  border: 0;
  border-radius: .72rem;
  color: #fff;
  background: var(--pulse-ink);
  box-shadow: none;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 850;
}
.public-site .nav-links { gap: .2rem; }
.public-site .nav-links a { position: relative; border-radius: 999px; padding: .55rem .82rem; color: var(--pulse-muted); font-size: .84rem; font-weight: 700; transition: color .25s ease, background .25s ease; }
.public-site .nav-links a::after { position: absolute; right: .85rem; bottom: .25rem; left: .85rem; height: 2px; border-radius: 99px; background: var(--pulse-accent); content: ""; transform: scaleX(0); transform-origin: center; transition: transform .25s ease; }
.public-site .nav-links a:hover,
.public-site .nav-links a[aria-current="page"] { color: var(--pulse-ink); background: #f3f4f6; }
.public-site .nav-links a:hover::after,
.public-site .nav-links a[aria-current="page"]::after { transform: scaleX(1); }
.nav-actions { justify-self: end; display: inline-flex; align-items: center; gap: .55rem; }
.theme-toggle {
  display: inline-grid;
  width: 2.55rem;
  height: 2.55rem;
  place-items: center;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  color: var(--pulse-ink);
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 6px 16px rgba(15, 23, 42, .06);
  transition: transform .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.theme-toggle:hover { transform: translateY(-1px); border-color: #bfdbfe; background: #eff6ff; }
.theme-toggle-icon { line-height: 1; font-size: 1rem; }
.theme-toggle-icon-sun { display: none; }
html[data-theme="dark"] .theme-toggle-icon-moon { display: none; }
html[data-theme="dark"] .theme-toggle-icon-sun { display: inline; }
.nav-contact { min-height: 2.65rem; border: 0; padding: .14rem .14rem .14rem 1.05rem; color: #fff !important; background: var(--pulse-ink); font-size: .8rem; box-shadow: 0 7px 17px rgba(17, 24, 39, .16); }
.nav-contact b { width: 2.35rem; height: 2.35rem; color: var(--pulse-ink); background: #fff; font-size: 1.05rem; }
.nav-contact:hover { color: #fff !important; background: var(--pulse-accent-dark); transform: translateY(-2px); }
.public-site .nav-toggle { color: var(--pulse-ink); background: #f3f4f6; }

.public-site .button,
.admin-body .button,
.admin-login .button {
  min-height: 3rem;
  border-radius: 999px;
  padding: .72rem 1.2rem;
  color: #fff;
  background: var(--pulse-ink);
  box-shadow: 0 9px 20px rgba(17, 24, 39, .14);
  font-size: .88rem;
  transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s ease, background .3s ease;
}
.public-site .button:hover,
.admin-body .button:hover,
.admin-login .button:hover { color: #fff; background: var(--pulse-accent-dark); box-shadow: 0 15px 30px rgba(37, 99, 235, .24); transform: translateY(-3px); }
.public-site .button.secondary,
.admin-body .button.secondary,
.admin-login .button.secondary { border-color: #d1d5db; color: var(--pulse-ink); background: #fff; box-shadow: none; }
.public-site .button.secondary:hover,
.admin-body .button.secondary:hover,
.admin-login .button.secondary:hover { color: var(--pulse-accent-dark); border-color: #bfdbfe; background: #eff6ff; box-shadow: none; }
.public-site .button.small,
.admin-body .button.small { min-height: 2.4rem; padding: .45rem .85rem; font-size: .8rem; }

.pulse-hero { position: relative; overflow: hidden; padding: clamp(5.5rem, 10vw, 8.7rem) 0 clamp(6.2rem, 11vw, 9.5rem); background: radial-gradient(circle at 84% 24%, rgba(191, 219, 254, .67), transparent 28%), radial-gradient(circle at 18% 86%, rgba(219, 234, 254, .7), transparent 32%), #f8fafc; }
.pulse-hero::before { position: absolute; inset: 0; opacity: .65; background-image: linear-gradient(rgba(148, 163, 184, .12) 1px, transparent 1px), linear-gradient(90deg, rgba(148, 163, 184, .12) 1px, transparent 1px); background-size: 48px 48px; mask-image: linear-gradient(to right, #000, transparent 85%); content: ""; pointer-events: none; }
.pulse-hero-grid { position: relative; display: grid; min-height: 34rem; align-items: center; grid-template-columns: minmax(0, .96fr) minmax(390px, .85fr); gap: clamp(2.5rem, 6vw, 7rem); }
.pulse-copy { position: relative; z-index: 2; max-width: 43rem; }
.pulse-badge { display: inline-flex; align-items: center; gap: .52rem; margin: 0 0 1.45rem; border: 1px solid #dbeafe; border-radius: 999px; padding: .5rem .85rem; color: #1d4ed8; background: rgba(255, 255, 255, .8); box-shadow: 0 5px 18px rgba(59, 130, 246, .07); font-size: .78rem; font-weight: 780; letter-spacing: .015em; }
.pulse-badge span { display: grid; width: 1.18rem; height: 1.18rem; place-items: center; border-radius: 50%; color: #fff; background: var(--pulse-accent); font-size: .64rem; }
.pulse-copy h1 { max-width: 11ch; margin: 0; color: var(--pulse-ink); font-size: clamp(3.5rem, 6.6vw, 6.2rem); line-height: .97; letter-spacing: -.07em; }
.pulse-copy h1 em { display: block; color: var(--pulse-accent); font-style: normal; }
.pulse-copy .lead { max-width: 36rem; margin: 1.65rem 0 0; color: var(--pulse-muted); font-size: clamp(1rem, 1.6vw, 1.15rem); line-height: 1.8; }
.pulse-copy .hero-actions { margin-top: 2.15rem; }
.hero-proof { display: flex; align-items: center; gap: .9rem; margin-top: 2.25rem; color: var(--pulse-muted); font-size: .78rem; line-height: 1.55; }
.hero-proof p { margin: 0; }.hero-proof strong { color: var(--pulse-ink); font-size: .82rem; }
.proof-avatars { display: flex; padding-left: .4rem; }
.proof-avatars span { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; margin-left: -.4rem; border: 2px solid #f8fafc; border-radius: 50%; color: #fff; background: #111827; font-size: .62rem; font-weight: 800; }
.proof-avatars span:nth-child(2) { color: #1d4ed8; background: #bfdbfe; }.proof-avatars span:nth-child(3) { color: #92400e; background: #fde68a; }
.hero-visual { position: relative; min-height: 31.5rem; perspective: 1100px; }
.dashboard-window { position: absolute; inset: 1rem 0 1rem 1rem; overflow: hidden; border: 1px solid rgba(255, 255, 255, .9); border-radius: 1.5rem; background: rgba(255, 255, 255, .9); box-shadow: 0 36px 70px rgba(30, 64, 175, .17), 0 8px 22px rgba(15, 23, 42, .08); transform: rotateY(-5deg) rotateX(2deg); transform-origin: center; animation: pulse-dashboard-float 7s ease-in-out infinite; }
.dashboard-bar { display: flex; height: 3.6rem; align-items: center; gap: .7rem; border-bottom: 1px solid #edf0f4; padding: 0 1.15rem; background: rgba(255, 255, 255, .84); }
.dashboard-logo { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; border-radius: .55rem; color: #fff; background: var(--pulse-ink); font-size: .72rem; font-weight: 800; }.dashboard-title { color: #374151; font-size: .72rem; font-weight: 750; }.dashboard-bar i { width: .46rem; height: .46rem; border-radius: 50%; background: #d1d5db; }.dashboard-bar i:first-of-type { margin-left: auto; }.dashboard-bar i:nth-of-type(2) { background: #bfdbfe; }.dashboard-bar i:nth-of-type(3) { background: #fde68a; }
.dashboard-body { display: grid; gap: 1rem; padding: 1.45rem; background: linear-gradient(135deg, #fbfdff, #f7faff); }
.dashboard-welcome, .dashboard-progress, .dashboard-chart, .dashboard-cards > div { border: 1px solid #edf0f4; border-radius: 1rem; background: #fff; box-shadow: 0 6px 18px rgba(15, 23, 42, .035); }
.dashboard-welcome { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.1rem; }.dashboard-welcome div { display: grid; gap: .2rem; }.dashboard-welcome small, .dashboard-progress small, .dashboard-cards small { color: #9ca3af; font-size: .66rem; }.dashboard-welcome strong { color: var(--pulse-ink); font-size: .95rem; }.dashboard-welcome > span { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; border-radius: 50%; color: #1d4ed8; background: #dbeafe; font-size: .7rem; font-weight: 850; }
.dashboard-progress { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .9rem 1.1rem; }.dashboard-progress div { display: grid; gap: .15rem; }.dashboard-progress strong { color: #374151; font-size: .73rem; }.dashboard-progress b { width: 35%; height: .48rem; overflow: hidden; border-radius: 999px; background: #e5e7eb; }.dashboard-progress b i { display: block; width: 74%; height: 100%; border-radius: inherit; background: var(--pulse-accent); }
.dashboard-chart { padding: 1rem 1.1rem .8rem; }.chart-label { display: flex; justify-content: space-between; color: #6b7280; font-size: .68rem; font-weight: 700; }.chart-label strong { color: #16a34a; }.chart-bars { display: flex; height: 5.7rem; align-items: end; justify-content: space-between; gap: .45rem; margin-top: .55rem; }.chart-bars i { width: 10%; border-radius: .35rem .35rem .14rem .14rem; background: #bfdbfe; }.chart-bars i:nth-child(1) { height: 28%; }.chart-bars i:nth-child(2) { height: 48%; }.chart-bars i:nth-child(3) { height: 36%; }.chart-bars i:nth-child(4) { height: 66%; background: #60a5fa; }.chart-bars i:nth-child(5) { height: 54%; }.chart-bars i:nth-child(6) { height: 82%; background: var(--pulse-accent); }.chart-bars i:nth-child(7) { height: 70%; }.chart-days { display: flex; justify-content: space-between; margin-top: .35rem; color: #9ca3af; font-size: .53rem; }
.dashboard-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; }.dashboard-cards > div { display: grid; grid-template-columns: auto 1fr; column-gap: .55rem; align-items: center; padding: .75rem; }.dashboard-cards small, .dashboard-cards strong { grid-column: 2; }.dashboard-cards strong { color: var(--pulse-ink); font-size: .7rem; }.card-icon { grid-row: 1 / 3; display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: .6rem; font-size: .8rem; }.card-icon.blue { color: #1d4ed8; background: #dbeafe; }.card-icon.warm { color: #b45309; background: #fef3c7; }
.hero-floating-note, .hero-floating-stat { position: absolute; z-index: 2; border: 1px solid rgba(255, 255, 255, .9); border-radius: 1rem; background: rgba(255, 255, 255, .92); box-shadow: 0 18px 35px rgba(30, 64, 175, .13); backdrop-filter: blur(10px); animation: pulse-float 5s ease-in-out infinite; }
.hero-floating-note { right: -1.2rem; bottom: 1.6rem; display: flex; align-items: center; gap: .65rem; padding: .75rem .95rem; }.hero-floating-note > span { display: grid; width: 1.85rem; height: 1.85rem; place-items: center; border-radius: .63rem; color: #fff; background: var(--pulse-accent); font-size: .75rem; }.hero-floating-note div { display: grid; }.hero-floating-note small, .hero-floating-stat small { color: #9ca3af; font-size: .63rem; }.hero-floating-note strong, .hero-floating-stat strong { color: #374151; font-size: .68rem; }
.hero-floating-stat { top: 0; left: -1rem; display: grid; gap: .15rem; padding: .75rem .9rem; animation-delay: -1.7s; }.hero-floating-stat span { width: 5.7rem; height: .34rem; overflow: hidden; border-radius: 99px; background: #e5e7eb; }.hero-floating-stat span::after { display: block; width: 64%; height: 100%; border-radius: inherit; background: #f59e0b; content: ""; }
.hero-blob { position: absolute; z-index: 0; display: block; border-radius: 50%; filter: blur(3px); pointer-events: none; }.hero-blob-one { top: 8%; right: -9%; width: 24rem; height: 24rem; background: rgba(147, 197, 253, .25); }.hero-blob-two { bottom: -17%; left: 31%; width: 19rem; height: 19rem; background: rgba(191, 219, 254, .42); }

.public-site .section { padding: clamp(6.25rem, 10vw, 8.5rem) 0; background: var(--pulse-paper); }.public-site .section.tint { background: #f1f5f9; }.public-site .section-heading { margin-bottom: 2.8rem; }.public-site .section-heading p, .public-site .lead, .public-site .card p, .public-site .article-content p, .public-site .article-content li { color: var(--pulse-muted); }.public-site h1, .public-site h2, .public-site h3 { color: var(--pulse-ink); }.public-site h2 { max-width: 17ch; font-size: clamp(2rem, 3.8vw, 3.55rem); line-height: 1.07; letter-spacing: -.055em; }.public-site h3 { letter-spacing: -.035em; }.public-site .eyebrow { color: var(--pulse-accent-dark); font-size: .74rem; letter-spacing: .12em; }.public-site .eyebrow::before { background: var(--pulse-accent); }
.public-site .grid { gap: 1.4rem; }.public-site .card { border-color: var(--pulse-line); border-radius: 1.4rem; padding: 1.55rem; background: var(--pulse-card); box-shadow: 0 8px 24px rgba(15, 23, 42, .035); transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease, border-color .35s ease; }.public-site .card:hover { border-color: #dbeafe; box-shadow: var(--pulse-shadow-hover); transform: translateY(-6px); }.public-site .card h3 a { color: var(--pulse-ink); }.public-site .card h3 a:hover { color: var(--pulse-accent-dark); }.public-site .feature-number { width: 2.6rem; height: 2.6rem; border-radius: .82rem; color: #1d4ed8; background: #dbeafe; }.public-site .pill { color: #1d4ed8; background: #eff6ff; }.public-site .meta { color: #6b7280; }.public-site .project-art { border-radius: 1.35rem 1.35rem .8rem .8rem; background: linear-gradient(135deg, #dbeafe, #eff6ff); color: var(--pulse-accent-dark); }.public-site .project-art img { transition: transform .45s ease; }.public-site .card:hover .project-art img { transform: scale(1.04); }
.public-site .page-hero { padding: clamp(6.5rem, 11vw, 9rem) 0 clamp(4rem, 6vw, 5.5rem); background: radial-gradient(circle at 86% 20%, #dbeafe, transparent 28%), #f8fafc; }.public-site .page-hero::before { opacity: .46; background-image: linear-gradient(rgba(148, 163, 184, .13) 1px, transparent 1px), linear-gradient(90deg, rgba(148, 163, 184, .13) 1px, transparent 1px); }.public-site .page-hero p { color: var(--pulse-muted); }.public-site .page-hero h1 { max-width: 13ch; font-size: clamp(3rem, 5.8vw, 5.5rem); letter-spacing: -.065em; }.public-site .content-wrap { gap: clamp(2.2rem, 6vw, 5.5rem); }.public-site .article-content { max-width: 790px; }.public-site .article-content p, .public-site .article-content li { font-size: 1.05rem; line-height: 1.85; }.public-site .article-content img { border-radius: 1.25rem; box-shadow: var(--pulse-shadow); }.public-site .side-card { border: 1px solid var(--pulse-line); border-left: 1px solid var(--pulse-line); border-radius: 1.1rem; padding: 1.25rem; background: #fff; box-shadow: 0 6px 20px rgba(15, 23, 42, .03); }.public-site .field input, .public-site .field textarea, .public-site .field select { border-color: #d1d5db; border-radius: .85rem; padding: .8rem .9rem; color: var(--pulse-ink); background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }.public-site .field input::placeholder, .public-site .field textarea::placeholder { color: #9ca3af; }.public-site .field input:focus, .public-site .field textarea:focus, .public-site .field select:focus { border-color: #60a5fa; outline: 0; box-shadow: 0 0 0 4px rgba(59, 130, 246, .12); }.public-site .form-card { box-shadow: var(--pulse-shadow); }.public-site .comment { border: 1px solid var(--pulse-line); border-left: 3px solid #93c5fd; border-radius: .85rem; background: #fff; }.public-site .pagination a, .public-site .pagination span { border-radius: .72rem; }.public-site .pagination .current { border-color: var(--pulse-ink); background: var(--pulse-ink); }
.public-site .site-footer { padding: 5rem 0 1.7rem; color: var(--pulse-muted); border-top: 1px solid var(--pulse-line); background: #f1f5f9; }.public-site .site-footer .brand { color: var(--pulse-ink); }.public-site .site-footer .brand-mark { color: #fff; background: var(--pulse-ink); }.public-site .site-footer h2 { max-width: none; margin-bottom: 1rem; color: var(--pulse-ink); font-size: .88rem; letter-spacing: -.02em; }.footer-grid { grid-template-columns: 1.35fr .65fr .65fr; gap: clamp(2rem, 6vw, 6rem); }.footer-intro p { max-width: 29rem; margin: 1.1rem 0 1.25rem; color: var(--pulse-muted) !important; }.footer-links { display: grid; gap: .65rem; }.footer-links a, .footer-social a { color: #4b5563; font-size: .86rem; text-decoration: none; }.footer-links a:hover, .footer-social a:hover { color: var(--pulse-accent-dark); }.footer-social { display: flex; flex-wrap: wrap; gap: .65rem; }.footer-social a { border: 1px solid #d1d5db; border-radius: 999px; padding: .36rem .68rem; font-size: .74rem; }.footer-bottom { display: flex; flex-wrap: wrap; gap: .55rem 1rem; margin-top: 4rem; border-color: #dbe0e8; color: #6b7280; }.footer-bottom a { margin-left: auto; color: #4b5563; }
.public-site .consent { border-color: var(--pulse-line); border-radius: 1.2rem; box-shadow: var(--pulse-shadow); }.public-site .table-wrap { border-color: var(--pulse-line); border-radius: 1.1rem; background: #fff; }

.admin-body,
.admin-login {
  --ink: var(--pulse-ink);
  --muted: var(--pulse-muted);
  --line: var(--pulse-line);
  --brand: var(--pulse-accent);
  --brand-dark: var(--pulse-accent-dark);
  color: var(--pulse-ink);
  background: #f8fafc;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.admin-shell { grid-template-columns: 268px minmax(0, 1fr); }.admin-sidebar { padding: 1.4rem 1rem; color: #cbd5e1; background: #111827; }.admin-sidebar .brand { margin: .15rem .55rem 2.2rem; color: #fff; }.admin-sidebar .brand-mark { border: 0; border-radius: .7rem; background: #fff; color: #111827; box-shadow: none; }.admin-nav { gap: .25rem; }.admin-nav a { position: relative; border-radius: .75rem; padding: .7rem .8rem; color: #aeb9ca; transition: color .2s ease, background .2s ease, transform .2s ease; }.admin-nav a:hover, .admin-nav a[aria-current="page"] { color: #fff; background: rgba(255, 255, 255, .1); transform: translateX(3px); }.admin-nav a[aria-current="page"]::before { position: absolute; left: -.55rem; width: .18rem; height: 1.1rem; border-radius: 99px; background: #60a5fa; content: ""; }.admin-topbar { min-height: 5.1rem; border-color: var(--pulse-line); padding: 0 clamp(1.3rem, 4vw, 3rem); background: rgba(255, 255, 255, .86); backdrop-filter: blur(15px); }.admin-topbar > a { color: var(--pulse-muted); font-size: .86rem; font-weight: 700; text-decoration: none; }.admin-topbar > a:hover { color: var(--pulse-accent-dark); }.admin-content { padding: clamp(1.4rem, 4vw, 3rem); }.admin-title { margin-bottom: 2rem; }.admin-title h1 { color: var(--pulse-ink); font-size: clamp(2rem, 3vw, 2.7rem); letter-spacing: -.055em; }.admin-title .eyebrow { color: var(--pulse-accent-dark); }.stats { gap: 1.15rem; }.stat { border-color: var(--pulse-line); border-radius: 1.15rem; padding: 1.2rem; background: #fff; box-shadow: 0 7px 20px rgba(15, 23, 42, .035); }.stat strong { color: var(--pulse-ink); font-size: 2rem; letter-spacing: -.05em; }.stat span { color: var(--pulse-muted); }.admin-body .card { border-color: var(--pulse-line); border-radius: 1.15rem; background: #fff; box-shadow: 0 7px 20px rgba(15, 23, 42, .035); }.admin-body .card p, .admin-body .lead { color: var(--pulse-muted); }.admin-body .table-wrap { border-color: var(--pulse-line); border-radius: 1.15rem; box-shadow: 0 7px 20px rgba(15, 23, 42, .035); }.admin-body .data-table th { color: var(--pulse-muted); background: #f8fafc; }.admin-body .data-table th, .admin-body .data-table td { border-color: var(--pulse-line); padding: .95rem; }.admin-body .data-table tr:hover td { background: #fbfdff; }.admin-body .actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }.admin-body .actions a { color: var(--pulse-accent-dark); font-weight: 750; }.admin-body .actions button:not(.button) { border: 0; padding: 0; color: #b91c1c; background: transparent; font-size: inherit; font-weight: 750; }.admin-body .field input, .admin-body .field textarea, .admin-body .field select, .admin-login .field input { border-color: #d1d5db; border-radius: .8rem; padding: .78rem .88rem; color: var(--pulse-ink); background: #fff; }.admin-body .field input:focus, .admin-body .field textarea:focus, .admin-body .field select:focus, .admin-login .field input:focus { border-color: #60a5fa; outline: 0; box-shadow: 0 0 0 4px rgba(59, 130, 246, .12); }.admin-body .admin-form { max-width: 980px; padding: clamp(1.2rem, 3vw, 2rem); }.admin-body fieldset.card { box-shadow: none; }.admin-login main { min-height: 100vh; display: grid; align-content: center; }.admin-login .brand { color: var(--pulse-ink); }.admin-login .brand-mark { border: 0; border-radius: .7rem; background: var(--pulse-ink); box-shadow: none; }.admin-login .card { border-color: var(--pulse-line); border-radius: 1.3rem; padding: 1.8rem; box-shadow: var(--pulse-shadow); }.admin-login h1 { color: var(--pulse-ink); }.admin-login .lead { color: var(--pulse-muted); }

html.reveal-ready [data-reveal],
html.reveal-ready main > .section,
html.reveal-ready main > .page-hero { opacity: 0; transform: translateY(22px); transition: opacity .65s cubic-bezier(.2, .8, .2, 1), transform .65s cubic-bezier(.2, .8, .2, 1); }
html.reveal-ready [data-reveal].is-revealed,
html.reveal-ready main > .section.is-revealed,
html.reveal-ready main > .page-hero.is-revealed { opacity: 1; transform: none; }
@keyframes pulse-dashboard-float { 0%, 100% { transform: rotateY(-5deg) rotateX(2deg) translateY(0); } 50% { transform: rotateY(-5deg) rotateX(2deg) translateY(-10px); } }
@keyframes pulse-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@media (max-width: 850px) {
  .pulse-hero-grid { grid-template-columns: 1fr; gap: 2.8rem; }.pulse-copy h1 { max-width: 12ch; }.hero-visual { width: min(36rem, 92%); min-height: 29rem; margin-left: auto; }.dashboard-window { left: 0; }.footer-grid { grid-template-columns: 1.2fr .8fr; }.footer-intro { grid-column: 1 / -1; }.admin-shell { grid-template-columns: 1fr; }.admin-sidebar { display: block; padding: .8rem 1rem; }.admin-sidebar .brand { margin: 0 .2rem .7rem; }.admin-nav { display: flex; overflow-x: auto; gap: .35rem; padding-bottom: .15rem; scrollbar-width: thin; }.admin-nav a { flex: 0 0 auto; white-space: nowrap; }.admin-nav a[aria-current="page"]::before { display: none; }
}
@media (max-width: 650px) {
  .container { width: min(100% - 2rem, 1280px); }.public-site .site-header, .page-home .site-header { top: .5rem; width: calc(100% - 1rem); }.public-site .nav { display: flex; min-height: 4rem; padding: 0 .75rem 0 .9rem; }.public-site .nav-toggle { margin-left: auto; order: 2; }.nav-actions { order: 3; gap: .4rem; }.theme-toggle { width: 2.35rem; height: 2.35rem; }.public-site .nav-links { top: 4.5rem; right: 0; left: 0; border-color: var(--pulse-line); border-radius: 1rem; padding: .55rem; background: rgba(255, 255, 255, .97); box-shadow: var(--pulse-shadow); backdrop-filter: blur(15px); }.public-site .nav-links a { padding: .72rem .85rem; }.public-site .nav-links a::after { display: none; }.nav-contact { display: none; }.pulse-hero { padding-top: 4.6rem; }.pulse-hero-grid { min-height: auto; }.pulse-copy h1 { font-size: clamp(3.15rem, 15.5vw, 4.6rem); }.pulse-copy .lead { line-height: 1.72; }.hero-visual { width: 100%; min-height: 23rem; }.dashboard-window { inset: .65rem .3rem .65rem 0; border-radius: 1.15rem; }.dashboard-body { gap: .65rem; padding: .8rem; }.dashboard-welcome, .dashboard-progress, .dashboard-chart { padding: .75rem; }.chart-bars { height: 4.3rem; }.hero-floating-note { right: -.25rem; bottom: 0; }.hero-floating-stat { top: -.35rem; left: -.2rem; }.dashboard-cards { gap: .5rem; }.dashboard-cards > div { padding: .55rem; }.public-site .section { padding: 5.25rem 0; }.public-site .section-heading { margin-bottom: 2rem; }.public-site h2 { max-width: 15ch; }.footer-grid { grid-template-columns: 1fr; gap: 2rem; }.footer-intro { grid-column: auto; }.footer-bottom { margin-top: 3rem; }.footer-bottom a { margin-left: 0; }.admin-topbar { min-height: 4.5rem; }.admin-topbar .actions > span { display: none; }.admin-content { padding: 1.2rem; }.stats { grid-template-columns: 1fr 1fr; }.admin-body .data-table th, .admin-body .data-table td { padding: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-window, .hero-floating-note, .hero-floating-stat { animation: none; }.public-site .button, .admin-body .button, .admin-login .button, .public-site .card, html.reveal-ready [data-reveal], html.reveal-ready main > .section, html.reveal-ready main > .page-hero { transition: none; }.public-site .card:hover, .public-site .button:hover, .admin-body .button:hover, .admin-login .button:hover { transform: none; }
}

/* Refined public content filters. Native controls remain accessible while the wrapper adds a consistent visual treatment. */
.public-site .content-filters {
  margin-bottom: 2.6rem;
  border-color: #dbeafe;
  padding: clamp(1.15rem, 2.6vw, 1.55rem);
  background: linear-gradient(135deg, #ffffff, #f6faff);
  box-shadow: 0 14px 35px rgba(30, 64, 175, .07);
}
.public-site .content-filters .grid { gap: 1rem 1.2rem; }
.public-site .content-filters .field { margin: 0; }
.public-site .content-filters .field label {
  display: flex;
  align-items: center;
  gap: .42rem;
  margin: 0 0 .5rem;
  color: #334155;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .025em;
}
.public-site .content-filters .field label::before {
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #60a5fa, #2563eb);
  box-shadow: 0 0 0 4px #eff6ff;
  content: "";
}
.public-site .content-filters .select-wrap { position: relative; }
.public-site .content-filters .select-wrap::after {
  position: absolute;
  top: 50%;
  right: 1rem;
  width: .52rem;
  height: .52rem;
  border-right: 2px solid #2563eb;
  border-bottom: 2px solid #2563eb;
  transform: translateY(-68%) rotate(45deg);
  pointer-events: none;
  transition: transform .2s ease;
  content: "";
}
.public-site .content-filters .select-wrap:focus-within::after { transform: translateY(-35%) rotate(225deg); }
.public-site .content-filters select {
  min-height: 3.25rem;
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: .95rem;
  padding: .82rem 3rem .82rem 1rem;
  color: #172554;
  background: #fff;
  box-shadow: 0 2px 5px rgba(15, 23, 42, .025);
  cursor: pointer;
  font-weight: 700;
}
.public-site .content-filters select:hover { border-color: #93c5fd; background: #f8fbff; }
.public-site .content-filters select:focus {
  border-color: #3b82f6;
  outline: 0;
  box-shadow: 0 0 0 4px rgba(59, 130, 246, .14), 0 5px 14px rgba(37, 99, 235, .08);
}
.public-site .content-filters select option { color: #172554; background: #ffffff; font-weight: 600; }
.public-site .content-filters .button {
  min-height: 2.9rem;
  margin-top: 1.2rem;
  border-radius: .85rem;
  padding-inline: 1.1rem;
  box-shadow: 0 7px 15px rgba(37, 99, 235, .15);
}
.public-site .content-filters .button span { font-size: 1.05em; transition: transform .2s ease; }
.public-site .content-filters .button:hover span { transform: translateX(3px); }

/* Public dark mode */
html[data-theme="dark"] {
  color-scheme: dark;
  --pulse-ink: #e5eefc;
  --pulse-muted: #9aa8bd;
  --pulse-paper: #0b1220;
  --pulse-card: #121a2b;
  --pulse-line: #243247;
  --pulse-accent: #60a5fa;
  --pulse-accent-dark: #93c5fd;
  --pulse-shadow: 0 20px 55px rgba(0, 0, 0, .35);
  --pulse-shadow-hover: 0 24px 65px rgba(0, 0, 0, .45);
}

html[data-theme="dark"] .public-site {
  --ink: var(--pulse-ink);
  --muted: var(--pulse-muted);
  --surface: var(--pulse-card);
  --tint: #162033;
  --line: var(--pulse-line);
  --brand: var(--pulse-accent);
  --brand-dark: var(--pulse-accent-dark);
  --blue: var(--pulse-accent);
  color: var(--pulse-ink);
  background: var(--pulse-paper);
}

html[data-theme="dark"] .public-site a { color: var(--pulse-ink); }
html[data-theme="dark"] .public-site a:hover { color: var(--pulse-accent-dark); }

html[data-theme="dark"] .public-site .site-header,
html[data-theme="dark"] .page-home .site-header {
  border-color: rgba(148, 163, 184, .18);
  background: rgba(15, 23, 42, .78);
  box-shadow: 0 12px 34px rgba(0, 0, 0, .28);
}

html[data-theme="dark"] .public-site .nav-links a:hover,
html[data-theme="dark"] .public-site .nav-links a[aria-current="page"] {
  color: #fff;
  background: rgba(148, 163, 184, .14);
}

html[data-theme="dark"] .public-site .nav-toggle {
  color: var(--pulse-ink);
  background: rgba(148, 163, 184, .12);
}

html[data-theme="dark"] .theme-toggle {
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, .22);
  background: rgba(30, 41, 59, .9);
  box-shadow: 0 8px 18px rgba(0, 0, 0, .28);
}

html[data-theme="dark"] .theme-toggle:hover {
  border-color: rgba(96, 165, 250, .45);
  background: rgba(37, 99, 235, .18);
}

html[data-theme="dark"] .nav-contact {
  color: #0b1220 !important;
  background: #e5eefc;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .28);
}

html[data-theme="dark"] .nav-contact b {
  color: #e5eefc;
  background: #111827;
}

html[data-theme="dark"] .nav-contact:hover {
  color: #fff !important;
  background: var(--pulse-accent-dark);
}

html[data-theme="dark"] .public-site .button {
  color: #0b1220;
  background: #e5eefc;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .28);
}

html[data-theme="dark"] .public-site .button:hover {
  color: #0b1220;
  background: #93c5fd;
  box-shadow: 0 14px 28px rgba(37, 99, 235, .28);
}

html[data-theme="dark"] .public-site .button.secondary {
  border-color: #334155;
  color: var(--pulse-ink);
  background: #162033;
}

html[data-theme="dark"] .public-site .button.secondary:hover {
  border-color: #60a5fa;
  color: #dbeafe;
  background: rgba(37, 99, 235, .16);
}

html[data-theme="dark"] .pulse-hero {
  background:
    radial-gradient(circle at 84% 24%, rgba(37, 99, 235, .28), transparent 28%),
    radial-gradient(circle at 18% 86%, rgba(30, 64, 175, .22), transparent 32%),
    #0b1220;
}

html[data-theme="dark"] .pulse-hero::before {
  opacity: .35;
  background-image:
    linear-gradient(rgba(148, 163, 184, .12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, .12) 1px, transparent 1px);
}

html[data-theme="dark"] .pulse-badge {
  border-color: rgba(96, 165, 250, .28);
  color: #93c5fd;
  background: rgba(15, 23, 42, .78);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .25);
}

html[data-theme="dark"] .proof-avatars span { border-color: #0b1220; }
html[data-theme="dark"] .dashboard-window {
  border-color: rgba(148, 163, 184, .16);
  background: rgba(18, 26, 43, .94);
  box-shadow: 0 36px 70px rgba(0, 0, 0, .4), 0 8px 22px rgba(0, 0, 0, .28);
}

html[data-theme="dark"] .dashboard-bar {
  border-bottom-color: #243247;
  background: rgba(15, 23, 42, .88);
}

html[data-theme="dark"] .dashboard-title { color: #cbd5e1; }
html[data-theme="dark"] .dashboard-body {
  background: linear-gradient(135deg, #101827, #0d1524);
}

html[data-theme="dark"] .dashboard-welcome,
html[data-theme="dark"] .dashboard-progress,
html[data-theme="dark"] .dashboard-chart,
html[data-theme="dark"] .dashboard-cards > div {
  border-color: #243247;
  background: #121a2b;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .2);
}

html[data-theme="dark"] .dashboard-welcome small,
html[data-theme="dark"] .dashboard-progress small,
html[data-theme="dark"] .dashboard-cards small,
html[data-theme="dark"] .chart-label,
html[data-theme="dark"] .chart-days {
  color: #8b9bb2;
}

html[data-theme="dark"] .dashboard-progress strong,
html[data-theme="dark"] .hero-floating-note strong,
html[data-theme="dark"] .hero-floating-stat strong {
  color: #e5eefc;
}

html[data-theme="dark"] .dashboard-progress b,
html[data-theme="dark"] .hero-floating-stat span {
  background: #243247;
}

html[data-theme="dark"] .chart-bars i { background: #1e3a5f; }
html[data-theme="dark"] .chart-bars i:nth-child(4),
html[data-theme="dark"] .chart-bars i:nth-child(6) { background: #60a5fa; }

html[data-theme="dark"] .hero-floating-note,
html[data-theme="dark"] .hero-floating-stat {
  border-color: rgba(148, 163, 184, .16);
  background: rgba(18, 26, 43, .94);
  box-shadow: 0 18px 35px rgba(0, 0, 0, .35);
}

html[data-theme="dark"] .hero-floating-note small,
html[data-theme="dark"] .hero-floating-stat small {
  color: #8b9bb2;
}

html[data-theme="dark"] .public-site .section { background: var(--pulse-paper); }
html[data-theme="dark"] .public-site .section.tint { background: #0f172a; }

html[data-theme="dark"] .public-site .card {
  border-color: var(--pulse-line);
  background: var(--pulse-card);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .22);
}

html[data-theme="dark"] .public-site .card:hover {
  border-color: rgba(96, 165, 250, .35);
  box-shadow: var(--pulse-shadow-hover);
}

html[data-theme="dark"] .public-site .feature-number {
  color: #93c5fd;
  background: rgba(37, 99, 235, .18);
}

html[data-theme="dark"] .public-site .pill {
  color: #93c5fd;
  background: rgba(37, 99, 235, .16);
}

html[data-theme="dark"] .public-site .project-art {
  background: linear-gradient(135deg, #172554, #1e3a5f);
  color: #bfdbfe;
}

html[data-theme="dark"] .public-site .page-hero {
  background:
    radial-gradient(circle at 86% 20%, rgba(37, 99, 235, .22), transparent 28%),
    #0b1220;
}

html[data-theme="dark"] .public-site .side-card,
html[data-theme="dark"] .public-site .comment,
html[data-theme="dark"] .public-site .table-wrap,
html[data-theme="dark"] .public-site .consent {
  border-color: var(--pulse-line);
  background: var(--pulse-card);
}

html[data-theme="dark"] .public-site .field input,
html[data-theme="dark"] .public-site .field textarea,
html[data-theme="dark"] .public-site .field select {
  border-color: #334155;
  color: var(--pulse-ink);
  background: #0f172a;
}

html[data-theme="dark"] .public-site .field input::placeholder,
html[data-theme="dark"] .public-site .field textarea::placeholder {
  color: #7c8ba1;
}

html[data-theme="dark"] .public-site .field input:focus,
html[data-theme="dark"] .public-site .field textarea:focus,
html[data-theme="dark"] .public-site .field select:focus {
  border-color: #60a5fa;
  box-shadow: 0 0 0 4px rgba(96, 165, 250, .16);
}

html[data-theme="dark"] .public-site .pagination a,
html[data-theme="dark"] .public-site .pagination span {
  border-color: var(--pulse-line);
  color: var(--pulse-ink);
  background: #121a2b;
}

html[data-theme="dark"] .public-site .pagination .current {
  border-color: #93c5fd;
  color: #0b1220;
  background: #93c5fd;
}

html[data-theme="dark"] .public-site .site-footer {
  color: var(--pulse-muted);
  border-top-color: var(--pulse-line);
  background: #0f172a;
}

html[data-theme="dark"] .footer-links a,
html[data-theme="dark"] .footer-social a,
html[data-theme="dark"] .footer-bottom a {
  color: #b6c3d6;
}

html[data-theme="dark"] .footer-links a:hover,
html[data-theme="dark"] .footer-social a:hover {
  color: #dbeafe;
}

html[data-theme="dark"] .footer-social a {
  border-color: #334155;
}

html[data-theme="dark"] .footer-bottom {
  border-color: #243247;
  color: #8b9bb2;
}

html[data-theme="dark"] .public-site .flash.success {
  border-color: #166534;
  color: #bbf7d0;
  background: rgba(22, 101, 52, .22);
}

html[data-theme="dark"] .public-site .flash.error {
  border-color: #991b1b;
  color: #fecaca;
  background: rgba(153, 27, 27, .22);
}

html[data-theme="dark"] .public-site .flash.info {
  border-color: #1d4ed8;
  color: #bfdbfe;
  background: rgba(29, 78, 216, .2);
}

html[data-theme="dark"] .public-site .empty {
  border-color: #334155;
  color: var(--pulse-muted);
  background: rgba(15, 23, 42, .5);
}

html[data-theme="dark"] .public-site .content-filters {
  border-color: rgba(96, 165, 250, .22);
  background: linear-gradient(135deg, #121a2b, #0f172a);
  box-shadow: 0 14px 35px rgba(0, 0, 0, .28);
}

html[data-theme="dark"] .public-site .content-filters .field label { color: #cbd5e1; }
html[data-theme="dark"] .public-site .content-filters .field label::before {
  box-shadow: 0 0 0 4px rgba(37, 99, 235, .18);
}

html[data-theme="dark"] .public-site .content-filters select {
  border-color: #334155;
  color: #e5eefc;
  background: #0f172a;
}

html[data-theme="dark"] .public-site .content-filters select:hover {
  border-color: #60a5fa;
  background: #121a2b;
}

html[data-theme="dark"] .public-site .content-filters select option {
  color: #e5eefc;
  background: #121a2b;
}

html[data-theme="dark"] .public-site .content-filters .select-wrap::after {
  border-right-color: #93c5fd;
  border-bottom-color: #93c5fd;
}

@media (max-width: 650px) {
  html[data-theme="dark"] .public-site .nav-links {
    border-color: var(--pulse-line);
    background: rgba(15, 23, 42, .96);
    box-shadow: 0 16px 36px rgba(0, 0, 0, .4);
  }
}

/* Modern BTY admin studio */
.admin-body {
  --admin-navy: #0b1220;
  --admin-blue: #2563eb;
  --admin-canvas: #f5f7fb;
  --admin-card: #ffffff;
  --admin-text: #172033;
  --admin-muted: #718096;
  --admin-border: #e6eaf0;
  --admin-shadow: 0 12px 34px rgba(15, 23, 42, .065);
  min-width: 320px;
  color: var(--admin-text);
  background: var(--admin-canvas);
}
.admin-body::before { position: fixed; z-index: -1; inset: 0; background: radial-gradient(circle at 92% 4%, rgba(191, 219, 254, .34), transparent 25rem), linear-gradient(180deg, #f8faff 0, var(--admin-canvas) 28rem); content: ""; pointer-events: none; }
.admin-body .admin-shell { display: grid; min-height: 100vh; grid-template-columns: 278px minmax(0, 1fr); }
.admin-body .admin-sidebar { position: sticky; top: 0; z-index: 50; display: flex; height: 100vh; flex-direction: column; overflow-y: auto; padding: 1.25rem 1rem 1rem; color: #cbd5e1; background: radial-gradient(circle at 20% 0, rgba(37, 99, 235, .18), transparent 15rem), var(--admin-navy); box-shadow: 14px 0 38px rgba(15, 23, 42, .08); scrollbar-width: thin; }
.admin-brand-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.admin-body .admin-sidebar .brand { display: inline-flex; min-width: 0; align-items: center; gap: .75rem; margin: 0; padding: .35rem .45rem; color: #fff; }
.admin-body .admin-sidebar .brand > span:last-child { display: grid; min-width: 0; line-height: 1.15; }
.admin-body .admin-sidebar .brand strong { font-size: .95rem; letter-spacing: -.02em; }
.admin-body .admin-sidebar .brand small { margin-top: .2rem; color: #7f8da5; font-size: .66rem; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
.admin-brand-icon { display: grid; width: 2.75rem; height: 2.75rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(255,255,255,.1); border-radius: .9rem; background: rgba(255,255,255,.07); box-shadow: inset 0 1px rgba(255,255,255,.08), 0 9px 20px rgba(0,0,0,.16); }
.admin-body .admin-brand-icon .brand-logo { width: 2rem; height: 2rem; object-fit: contain; }
.admin-sidebar-close { display: none; width: 2.35rem; height: 2.35rem; border: 0; border-radius: .7rem; color: #cbd5e1; background: rgba(255,255,255,.08); font-size: 1.35rem; }
.admin-nav-label { margin: 2rem .75rem .65rem; color: #64748b; font-size: .65rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.admin-nav .admin-nav-label { margin: 1.45rem .75rem .5rem; }
.admin-body .admin-nav { display: grid; gap: .28rem; }
.admin-body .admin-nav a { position: relative; display: grid; min-height: 2.8rem; align-items: center; grid-template-columns: 2rem minmax(0, 1fr); gap: .65rem; border: 1px solid transparent; border-radius: .85rem; padding: .45rem .65rem; color: #9dabbe; font-size: .82rem; font-weight: 680; text-decoration: none; transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease; }
.admin-body .admin-nav a::before { display: none; }
.admin-body .admin-nav a:hover { color: #fff; border-color: rgba(255,255,255,.07); background: rgba(255,255,255,.055); transform: translateX(2px); }
.admin-body .admin-nav a[aria-current="page"] { color: #fff; border-color: rgba(96, 165, 250, .2); background: linear-gradient(100deg, rgba(37, 99, 235, .28), rgba(37, 99, 235, .12)); box-shadow: inset 3px 0 #60a5fa, 0 7px 18px rgba(0,0,0,.12); transform: none; }
.admin-nav-icon { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .65rem; color: #8493aa; background: rgba(255,255,255,.045); font-size: .93rem; font-weight: 800; }
.admin-nav a:hover .admin-nav-icon, .admin-nav a[aria-current="page"] .admin-nav-icon { color: #dbeafe; background: rgba(96,165,250,.16); }
.admin-sidebar-footer { display: flex; align-items: center; gap: .7rem; margin-top: auto; border: 1px solid rgba(255,255,255,.07); border-radius: .9rem; padding: .8rem; background: rgba(255,255,255,.035); }
.admin-sidebar-footer div { display: grid; line-height: 1.25; }.admin-sidebar-footer strong { color: #dbe4ef; font-size: .72rem; }.admin-sidebar-footer small { margin-top: .15rem; color: #64748b; font-size: .62rem; }
.admin-status-dot { width: .55rem; height: .55rem; flex: 0 0 auto; border: 2px solid rgba(74,222,128,.18); border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 4px rgba(74,222,128,.08); }
.admin-sidebar-backdrop { display: none; }
.admin-body .admin-main { min-width: 0; }
.admin-body .admin-topbar { position: sticky; top: 0; z-index: 40; display: flex; min-height: 4.9rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid rgba(226, 232, 240, .82); padding: 0 clamp(1.25rem, 3.5vw, 3rem); background: rgba(255, 255, 255, .82); box-shadow: 0 6px 22px rgba(15, 23, 42, .025); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.admin-topbar-context { display: flex; align-items: center; gap: .8rem; }.admin-topbar-context > div { display: grid; line-height: 1.25; }.admin-topbar-context small { color: #94a3b8; font-size: .65rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }.admin-topbar-context strong { margin-top: .15rem; color: var(--admin-text); font-size: .92rem; }
.admin-menu-toggle { display: none; width: 2.55rem; height: 2.55rem; border: 1px solid var(--admin-border); border-radius: .8rem; color: var(--admin-text); background: #fff; }
.admin-topbar-actions { display: flex; align-items: center; gap: .75rem; }
.admin-view-site { display: inline-flex; min-height: 2.45rem; align-items: center; gap: .45rem; border: 1px solid var(--admin-border); border-radius: .75rem; padding: .45rem .72rem; color: #526075; background: rgba(255,255,255,.7); font-size: .75rem; font-weight: 750; text-decoration: none; }
.admin-view-site:hover { color: var(--admin-blue); border-color: #bfdbfe; background: #eff6ff; }
.admin-user { display: flex; align-items: center; gap: .6rem; border-left: 1px solid var(--admin-border); padding-left: .75rem; }.admin-avatar { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border-radius: .72rem; color: #fff; background: linear-gradient(135deg, #2563eb, #60a5fa); box-shadow: 0 7px 16px rgba(37,99,235,.22); font-size: .78rem; font-weight: 850; }
.admin-user-copy { display: grid; line-height: 1.2; }.admin-user-copy strong { max-width: 10rem; overflow: hidden; color: var(--admin-text); font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }.admin-user-copy small { margin-top: .15rem; color: #94a3b8; font-size: .64rem; }
.admin-logout { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border: 1px solid var(--admin-border); border-radius: .72rem; color: #64748b; background: #fff; font-size: 1rem; transition: color .2s, border-color .2s, background .2s; }.admin-logout:hover { color: #b42318; border-color: #fecaca; background: #fff1f2; }
.admin-body .admin-content { width: min(100%, 1440px); margin-inline: auto; padding: clamp(1.5rem, 3.5vw, 3.25rem); }
.admin-body .admin-title { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; }.admin-body .admin-title > div { min-width: 0; }.admin-body .admin-title .eyebrow { margin-bottom: .55rem; color: var(--admin-blue); font-size: .68rem; letter-spacing: .12em; }.admin-body .admin-title h1 { margin: 0; color: var(--admin-text); font-size: clamp(2rem, 3.3vw, 3rem); line-height: 1.05; letter-spacing: -.06em; }.admin-body .admin-title .help { max-width: 44rem; margin: .65rem 0 0; color: var(--admin-muted); }
.admin-body .button { min-height: 2.8rem; border-radius: .82rem; padding: .65rem 1rem; color: #fff; background: linear-gradient(135deg, #1d4ed8, #2563eb); box-shadow: 0 8px 18px rgba(37,99,235,.2); font-size: .78rem; }.admin-body .button:hover { color: #fff; background: linear-gradient(135deg, #1e40af, #1d4ed8); box-shadow: 0 12px 24px rgba(37,99,235,.28); transform: translateY(-2px); }.admin-body .button.secondary { color: #45546a; border-color: var(--admin-border); background: #fff; box-shadow: 0 4px 12px rgba(15,23,42,.035); }.admin-body .button.secondary:hover { color: var(--admin-blue); border-color: #bfdbfe; background: #eff6ff; box-shadow: 0 7px 16px rgba(37,99,235,.08); }
.admin-body .stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }.admin-body .stat { position: relative; min-height: 8.4rem; overflow: hidden; border: 1px solid var(--admin-border); border-radius: 1.2rem; padding: 1.25rem; background: rgba(255,255,255,.88); box-shadow: var(--admin-shadow); }.admin-body .stat::before { position: absolute; top: 1.15rem; right: 1.15rem; display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border-radius: .75rem; color: #2563eb; background: #eff6ff; font-size: .9rem; content: "↗"; }.admin-body .stat:nth-child(2)::before { color: #7c3aed; background: #f5f3ff; content: "◇"; }.admin-body .stat:nth-child(3)::before { color: #d97706; background: #fffbeb; content: "✉"; }.admin-body .stat:nth-child(4)::before { color: #059669; background: #ecfdf5; content: "◌"; }.admin-body .stat::after { position: absolute; right: -2rem; bottom: -3.2rem; width: 7rem; height: 7rem; border-radius: 50%; background: rgba(37,99,235,.045); content: ""; }.admin-body .stat strong { position: relative; z-index: 1; display: block; margin-top: .45rem; color: var(--admin-text); font-size: 2.35rem; line-height: 1; letter-spacing: -.07em; }.admin-body .stat span { position: relative; z-index: 1; display: block; margin-top: .75rem; color: var(--admin-muted); font-size: .75rem; font-weight: 680; }
.admin-body .grid { gap: 1.15rem; }.admin-body .card { border: 1px solid var(--admin-border); border-radius: 1.2rem; padding: 1.4rem; background: rgba(255,255,255,.9); box-shadow: var(--admin-shadow); }.admin-body .card h2 { color: var(--admin-text); letter-spacing: -.035em; }.admin-body .card p, .admin-body .card li, .admin-body .lead, .admin-body .help { color: var(--admin-muted); }.admin-body .card > a { color: var(--admin-blue); font-size: .8rem; font-weight: 800; text-decoration: none; }
.admin-body .table-wrap { overflow: hidden auto; border: 1px solid var(--admin-border); border-radius: 1.15rem; background: rgba(255,255,255,.92); box-shadow: var(--admin-shadow); }.admin-body .data-table { min-width: 720px; }.admin-body .data-table th { border-bottom: 1px solid var(--admin-border); padding: .9rem 1rem; color: #8995a7; background: #fafbfc; font-size: .65rem; font-weight: 850; letter-spacing: .08em; }.admin-body .data-table td { border-bottom: 1px solid #eef1f5; padding: 1rem; color: #46546a; font-size: .79rem; line-height: 1.55; }.admin-body .data-table tbody tr { transition: background .18s ease; }.admin-body .data-table tbody tr:hover { background: #f8faff; }.admin-body .data-table tbody tr:last-child td { border-bottom: 0; }.admin-body .data-table td strong { color: var(--admin-text); }.admin-body .data-table td small { color: #94a3b8; }.admin-body .data-table td a { color: #2563eb; font-weight: 750; text-decoration: none; }.admin-body .data-table td a:hover { color: #1d4ed8; text-decoration: underline; }.admin-body .data-table .actions { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; }.admin-body .data-table .actions > a, .admin-body .data-table .actions button { display: inline-flex; min-height: 2rem; align-items: center; border: 1px solid #dbe4f0; border-radius: .6rem; padding: .28rem .55rem; color: #334155; background: #fff; font-size: .7rem; font-weight: 760; text-decoration: none; }.admin-body .data-table .actions > a:hover { color: #1d4ed8; border-color: #bfdbfe; background: #eff6ff; text-decoration: none; }.admin-body .data-table .actions form button, .admin-body .data-table .inline-form button { color: #b42318; border-color: #fee2e2; background: #fff7f7; }.admin-body .data-table .actions form button:hover, .admin-body .data-table .inline-form button:hover { border-color: #fecaca; background: #fff1f2; }.admin-body .data-table .actions select { min-height: 2.2rem; border: 1px solid #dbe4f0; border-radius: .6rem; padding: .25rem .55rem; color: #334155; background: #fff; font-size: .7rem; }
.admin-body .status { border: 1px solid transparent; border-radius: 999px; padding: .25rem .58rem; font-size: .64rem; font-weight: 850; letter-spacing: .02em; text-transform: capitalize; }.admin-body .status.published, .admin-body .status.approved, .admin-body .status.read { color: #047857; border-color: #bbf7d0; background: #ecfdf5; }.admin-body .status.draft, .admin-body .status.pending, .admin-body .status.unread { color: #b45309; border-color: #fde68a; background: #fffbeb; }.admin-body .status.archived, .admin-body .status.rejected, .admin-body .status.spam { color: #64748b; border-color: #e2e8f0; background: #f8fafc; }
.admin-body .admin-form { max-width: 1040px; padding: clamp(1.25rem, 2.5vw, 2rem); }.admin-body .admin-form > h2 { margin: 2rem 0 1rem; border-top: 1px solid var(--admin-border); padding-top: 1.5rem; color: var(--admin-text); font-size: 1.05rem !important; }.admin-body .field { gap: .45rem; margin-bottom: 1.15rem; }.admin-body .field label { color: #344054; font-size: .76rem; font-weight: 780; }.admin-body .field small { color: #8b97a8; font-size: .7rem; }.admin-body .field input, .admin-body .field textarea, .admin-body .field select { min-height: 2.85rem; border: 1px solid #dce2ea; border-radius: .78rem; padding: .68rem .8rem; color: var(--admin-text); background: #fbfcfe; box-shadow: inset 0 1px 2px rgba(15,23,42,.02); transition: border-color .2s, box-shadow .2s, background .2s; }.admin-body .field textarea { min-height: 11rem; line-height: 1.65; }.admin-body .field input:hover, .admin-body .field textarea:hover, .admin-body .field select:hover { border-color: #c7d2e0; background: #fff; }.admin-body .field input:focus, .admin-body .field textarea:focus, .admin-body .field select:focus { border-color: #60a5fa; outline: 0; background: #fff; box-shadow: 0 0 0 4px rgba(59,130,246,.11); }.admin-body .admin-form .split { gap: 1rem; }.admin-body fieldset.card { min-width: 0; }.admin-body fieldset.card legend { padding: 0 .4rem; color: var(--admin-text); }.admin-body .thumbnail-upload { border-color: var(--admin-border); border-radius: 1rem; background: #f8faff; }.admin-body .notice { border: 1px solid #bfdbfe; border-radius: .9rem; padding: .9rem 1rem; color: #31517d; background: #eff6ff; font-size: .78rem; line-height: 1.6; }.admin-body .flash { border-radius: .9rem; box-shadow: 0 8px 20px rgba(15,23,42,.05); }
@media (max-width: 1100px) { .admin-body .admin-shell { grid-template-columns: 240px minmax(0, 1fr); }.admin-body .admin-sidebar { padding-inline: .8rem; }.admin-user-copy { display: none; }.admin-body .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 820px) { .admin-body .admin-shell { display: block; }.admin-body .admin-sidebar { position: fixed; inset: 0 auto 0 0; width: min(286px, calc(100% - 3rem)); padding: 1rem; transform: translateX(-105%); transition: transform .25s cubic-bezier(.2,.8,.2,1); }.admin-body .admin-sidebar.is-open { transform: none; }.admin-sidebar-close { display: grid; place-items: center; }.admin-sidebar-backdrop { position: fixed; z-index: 45; inset: 0; border: 0; background: rgba(7,12,22,.56); backdrop-filter: blur(3px); }.admin-menu-open .admin-sidebar-backdrop { display: block; }.admin-menu-open { overflow: hidden; }.admin-menu-toggle { display: grid; place-items: center; }.admin-body .admin-topbar { min-height: 4.5rem; } }
@media (max-width: 620px) { .admin-body .admin-topbar { padding-inline: .8rem; }.admin-topbar-context > div { display: none; }.admin-view-site span:last-child { display: none; }.admin-view-site { width: 2.35rem; min-height: 2.35rem; justify-content: center; padding: 0; }.admin-user { border-left: 0; padding-left: 0; }.admin-avatar { width: 2.25rem; height: 2.25rem; }.admin-body .admin-content { padding: 1.25rem .9rem 2rem; }.admin-body .admin-title { align-items: stretch; flex-direction: column; gap: 1rem; }.admin-body .admin-title .button { align-self: flex-start; }.admin-body .stats { grid-template-columns: 1fr 1fr; gap: .7rem; }.admin-body .stat { min-height: 7.3rem; padding: 1rem; }.admin-body .stat::before { top: .8rem; right: .8rem; width: 2rem; height: 2rem; }.admin-body .stat strong { font-size: 2rem; }.admin-body .stat span { max-width: 8rem; font-size: .68rem; }.admin-body .grid.two { grid-template-columns: 1fr; }.admin-body .admin-form { padding: 1rem; }.admin-body .admin-form .split { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .admin-body .admin-sidebar, .admin-body .admin-nav a, .admin-body .button { transition: none; } }

/* Modern admin sign-in */
.admin-login { min-width: 320px; min-height: 100vh; background: #f6f8fc; }
.admin-login-shell { display: grid; min-height: 100vh; grid-template-columns: minmax(330px, .9fr) minmax(430px, 1.1fr); }
.admin-login-intro { position: relative; display: flex; overflow: hidden; flex-direction: column; padding: clamp(2rem, 5vw, 4.5rem); color: #e2e8f0; background: radial-gradient(circle at 80% 20%, rgba(37,99,235,.38), transparent 22rem), radial-gradient(circle at 10% 90%, rgba(14,165,233,.18), transparent 18rem), #0b1220; }
.admin-login-intro::before { position: absolute; inset: 0; opacity: .11; background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px); background-size: 54px 54px; mask-image: linear-gradient(135deg, #000, transparent 78%); content: ""; pointer-events: none; }
.admin-login-brand { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: .7rem; align-self: flex-start; color: #fff; text-decoration: none; }.admin-login-brand > span { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; border: 1px solid rgba(255,255,255,.12); border-radius: .9rem; background: rgba(255,255,255,.08); }.admin-login-brand img { width: 2rem; height: 2rem; object-fit: contain; }.admin-login-brand strong { font-size: 1rem; letter-spacing: -.02em; }
.admin-login-copy { position: relative; z-index: 1; margin-block: auto; }.admin-login-kicker { margin: 0 0 1.25rem; color: #60a5fa; font-size: .7rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }.admin-login-copy h1 { max-width: 8ch; margin: 0; color: #fff; font-size: clamp(3rem, 5.5vw, 5.8rem); line-height: .94; letter-spacing: -.07em; }.admin-login-copy h1 em { color: #60a5fa; font-style: normal; }.admin-login-copy > p:last-child { max-width: 32rem; margin: 1.6rem 0 0; color: #94a3b8; font-size: .92rem; line-height: 1.8; }
.admin-login-trust { position: relative; z-index: 1; display: flex; align-items: center; gap: .75rem; max-width: 26rem; border: 1px solid rgba(255,255,255,.09); border-radius: 1rem; padding: .9rem; background: rgba(255,255,255,.045); backdrop-filter: blur(10px); }.admin-login-trust > span { display: grid; width: 2.1rem; height: 2.1rem; flex: 0 0 auto; place-items: center; border-radius: .68rem; color: #86efac; background: rgba(34,197,94,.12); }.admin-login-trust p { display: grid; margin: 0; line-height: 1.3; }.admin-login-trust strong { color: #e2e8f0; font-size: .72rem; }.admin-login-trust small { margin-top: .2rem; color: #718096; font-size: .62rem; }
.admin-login-panel { display: grid; place-items: center; padding: clamp(1.5rem, 5vw, 4rem); background: radial-gradient(circle at 90% 5%, rgba(219,234,254,.65), transparent 22rem), #f8fafc; }
.admin-login-box { width: min(100%, 470px); }.admin-login-back { display: inline-flex; margin-bottom: 2rem; color: #64748b; font-size: .75rem; font-weight: 720; text-decoration: none; }.admin-login-back:hover { color: #2563eb; }
.admin-login-heading { margin-bottom: 1.8rem; }.admin-login-heading .eyebrow { margin-bottom: .65rem; color: #2563eb; font-size: .66rem; letter-spacing: .12em; }.admin-login-heading h2 { margin: 0; color: #172033; font-size: clamp(2rem, 4vw, 2.7rem); letter-spacing: -.055em; }.admin-login-heading > p:last-child { margin: .65rem 0 0; color: #718096; font-size: .84rem; }
.admin-login .field { margin-bottom: 1.1rem; }.admin-login .field label { color: #344054; font-size: .74rem; font-weight: 780; }.admin-login .field input { min-height: 3.2rem; border: 1px solid #dbe2eb; border-radius: .85rem; padding: .75rem .9rem; color: #172033; background: rgba(255,255,255,.9); box-shadow: 0 4px 14px rgba(15,23,42,.025); }.admin-login .field input::placeholder { color: #a1aaba; }.admin-login .field input:focus { border-color: #60a5fa; outline: 0; box-shadow: 0 0 0 4px rgba(59,130,246,.11), 0 8px 20px rgba(37,99,235,.06); }
.admin-login-submit { display: flex; width: 100%; min-height: 3.25rem; justify-content: space-between; margin-top: .35rem; border-radius: .85rem; padding-inline: 1.1rem; background: linear-gradient(135deg, #1d4ed8, #2563eb); box-shadow: 0 10px 24px rgba(37,99,235,.22); }.admin-login-submit:hover { background: linear-gradient(135deg, #1e40af, #1d4ed8); box-shadow: 0 14px 28px rgba(37,99,235,.3); }
.admin-login-help { margin: 1.35rem 0 0; color: #94a3b8; font-size: .68rem; text-align: center; }.admin-login .flash { margin: 0 0 1.25rem; border-radius: .85rem; font-size: .76rem; }
@media (max-width: 850px) { .admin-login-shell { grid-template-columns: 1fr; }.admin-login-intro { min-height: 18rem; padding: 1.5rem; }.admin-login-copy { margin: 3rem 0; }.admin-login-copy h1 { max-width: 12ch; font-size: clamp(2.7rem, 11vw, 4.4rem); }.admin-login-copy > p:last-child, .admin-login-trust { display: none; }.admin-login-panel { padding: 2.5rem 1.25rem 3rem; }.admin-login-back { margin-bottom: 1.5rem; } }