
:root{
  --h-orange:#F0932B;--h-red:#D9455F;--h-magenta:#B0359E;--h-purple:#5B35C5;
  --h-acc:#9B2FB0;
  --grad-brand:linear-gradient(135deg,#F0932B 0%,#D9455F 35%,#B0359E 70%,#5B35C5 100%);
  --grad-warm:linear-gradient(135deg,#F0932B 0%,#D9455F 100%);
  --grad-text:linear-gradient(90deg,#D97A1E,#C43A55,#9B2FB0);
  --grad-hero-bg:linear-gradient(150deg,#f6f5f9 0%,#f0edf7 45%,#f7eef4 100%);
  --bg:#f4f4f6;--surface-1:#ffffff;--surface-2:#edecf1;--surface-3:#e2e0ea;--surface-card:#ffffff;
  --border:rgba(91,53,197,0.14);--border-warm:rgba(217,122,30,0.22);
  --text-primary:#241A3D;--text-muted:#5C5470;--text-faint:#948DA8;--text-inverse:#ffffff;
  --font-body:'Inter','Segoe UI',sans-serif;
  --text-xs:clamp(0.75rem,0.7rem + 0.25vw,0.875rem);
  --text-sm:clamp(0.875rem,0.8rem + 0.35vw,1rem);
  --text-base:clamp(1rem,0.95rem + 0.25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + 0.75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --text-3xl:clamp(2.5rem,1rem + 4vw,5rem);
  --sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.25rem;
  --sp-6:1.5rem;--sp-8:2rem;--sp-10:2.5rem;--sp-12:3rem;--sp-16:4rem;--sp-20:5rem;--sp-24:6rem;
  --r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:24px;--r-pill:9999px;
  --sh-sm:0 2px 12px rgba(91,53,197,0.10);--sh-md:0 6px 24px rgba(91,53,197,0.14);--sh-lg:0 16px 44px rgba(91,53,197,0.18);
  --ease:200ms cubic-bezier(0.16,1,0.3,1);
  --content-narrow:640px;--content-default:960px;--content-wide:1200px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;scroll-padding-top:80px}
body{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-primary);background:var(--bg);min-height:100dvh;line-height:1.7}
img,picture,svg{display:block;max-width:100%;height:auto}
ul{list-style:none}input,button,textarea,select{font:inherit;color:inherit}
h1,h2,h3,h4,h5,h6{text-wrap:balance;line-height:1.15}
p,li{text-wrap:pretty;max-width:72ch}
::selection{background:rgba(155,47,176,.2);color:var(--text-primary)}
:focus-visible{outline:2px solid var(--h-acc);outline-offset:3px;border-radius:var(--r-sm)}
button{cursor:pointer;background:none;border:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.reveal,.reveal-left,.reveal-right{opacity:0;transform:translateY(28px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.reveal-left{transform:translateX(-28px)}.reveal-right{transform:translateX(28px)}
.reveal.visible,.reveal-left.visible,.reveal-right.visible{opacity:1;transform:none}

.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-8);background:rgba(255,255,255,.88);backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid var(--border);transition:background var(--ease),box-shadow var(--ease);gap:var(--sp-4)}
.navbar.scrolled{background:rgba(255,255,255,.98);box-shadow:0 2px 16px rgba(91,53,197,.08)}
.navbar-brand{display:flex;align-items:center;gap:var(--sp-3);text-decoration:none;flex-shrink:0}
.navbar-wordmark{display:flex;flex-direction:column;line-height:1}
.navbar-wordmark-main{font-size:1.15rem;font-weight:900;letter-spacing:-.02em;background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.navbar-wordmark-sub{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin-top:1px}
.navbar-nav{display:flex;align-items:center;gap:var(--sp-1);flex-wrap:nowrap}
.navbar-nav a{text-decoration:none;color:var(--text-muted);font-size:var(--text-sm);font-weight:500;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);transition:color var(--ease),background var(--ease);white-space:nowrap}
.navbar-nav a:hover{color:var(--text-primary);background:rgba(155,47,176,.08)}
.btn-nav-cta{background:var(--grad-brand)!important;color:white!important;font-weight:700!important;padding:var(--sp-2) var(--sp-5)!important;border-radius:var(--r-pill)!important;box-shadow:0 2px 14px rgba(155,47,176,.28)!important}
.btn-nav-cta:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(155,47,176,.4)!important}
.navbar-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:var(--sp-2)}
.navbar-toggle span{display:block;width:22px;height:2px;background:var(--text-primary);border-radius:2px}
@media(max-width:1100px){.navbar-nav{display:none;position:fixed;top:62px;left:0;right:0;flex-direction:column;background:rgba(255,255,255,.98);backdrop-filter:blur(24px);padding:var(--sp-6);gap:var(--sp-2);border-bottom:1px solid var(--border);align-items:flex-start}.navbar-nav.open{display:flex}.navbar-toggle{display:flex}.btn-nav-cta{margin-top:var(--sp-2)!important;align-self:flex-start}}

.brand-logo-img{width:42px;height:42px;border-radius:var(--r-md);object-fit:contain;flex-shrink:0;background:#fff;padding:2px;box-shadow:0 2px 8px rgba(91,53,197,.16)}
.footer-brand-logo .brand-logo-img{width:46px;height:46px}
.hero-logo-img{width:120px;height:120px;border-radius:var(--r-xl);object-fit:contain;background:#fff;padding:10px;box-shadow:0 8px 28px rgba(91,53,197,.2);animation:lpulse 4s ease-in-out infinite}
.about-visual-card .hero-logo-img{width:100px;height:100px;margin:0 auto;padding:8px}
@keyframes lpulse{0%,100%{filter:drop-shadow(0 0 14px rgba(155,47,176,.25))}50%{filter:drop-shadow(0 0 26px rgba(240,147,43,.28))}}

.hero{min-height:100svh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding-top:80px;background:var(--grad-hero-bg)}
.hero-mesh{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.35}
.hero-orb-1{width:520px;height:520px;top:-80px;right:-60px;background:radial-gradient(circle,#B0359E 0%,transparent 70%);animation:orbf 8s ease-in-out infinite}
.hero-orb-2{width:400px;height:400px;bottom:-80px;left:-60px;background:radial-gradient(circle,#F0932B 0%,transparent 70%);animation:orbf 10s ease-in-out infinite reverse}
.hero-orb-3{width:300px;height:300px;top:40%;left:40%;background:radial-gradient(circle,#5B35C5 0%,transparent 70%);animation:orbf 12s ease-in-out infinite 2s}
@keyframes orbf{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(20px,-20px) scale(1.08)}66%{transform:translate(-15px,15px) scale(.95)}}
.hero-content{position:relative;z-index:2;max-width:900px;padding:0 var(--sp-8);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-6)}
.hero-tag{display:inline-flex;align-items:center;gap:var(--sp-2);background:rgba(155,47,176,.08);border:1px solid rgba(155,47,176,.25);border-radius:var(--r-pill);padding:var(--sp-2) var(--sp-4);font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#7A2E92}
.hero-tag::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--h-acc);box-shadow:0 0 8px var(--h-acc)}
.hero-headline{font-size:var(--text-3xl);font-weight:900;letter-spacing:-.03em;line-height:1.08;background:var(--grad-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;max-width:860px}
.hero-sub{font-size:var(--text-lg);color:var(--text-muted);max-width:620px}
.hero-actions{display:flex;gap:var(--sp-4);flex-wrap:wrap;justify-content:center}
.hero-stats{display:flex;gap:var(--sp-10);flex-wrap:wrap;justify-content:center;margin-top:var(--sp-6);padding-top:var(--sp-6);border-top:1px solid var(--border)}
.hero-stat{text-align:center}
.hero-stat-num{font-size:var(--text-xl);font-weight:900;background:var(--grad-warm);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-stat-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em}

.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);border-radius:var(--r-pill);font-size:var(--text-sm);font-weight:700;text-decoration:none;cursor:pointer;border:none;transition:all var(--ease);white-space:nowrap}
.btn-primary{background:var(--grad-brand);color:white;box-shadow:0 4px 20px rgba(155,47,176,.28)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(155,47,176,.4)}
.btn-outline{background:transparent;color:var(--text-primary);border:1.5px solid rgba(91,53,197,.3)}
.btn-outline:hover{background:rgba(155,47,176,.06);border-color:var(--h-acc)}
.btn-white{background:white;color:var(--h-purple);font-weight:800;box-shadow:0 4px 14px rgba(0,0,0,.08);border:1px solid var(--border)}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.12)}

.section{padding:clamp(var(--sp-16),8vw,var(--sp-24)) var(--sp-8)}
.section-alt{background:var(--surface-1)}
.section-inner{max-width:var(--content-wide);margin:0 auto}
.section-header{text-align:center;margin-bottom:var(--sp-12)}
.section-tag{display:inline-block;padding:var(--sp-1) var(--sp-3);background:rgba(155,47,176,.08);border:1px solid rgba(155,47,176,.22);border-radius:var(--r-pill);font-size:var(--text-xs);font-weight:700;color:#7A2E92;letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--sp-4)}
.section-title{font-size:var(--text-2xl);font-weight:900;letter-spacing:-.03em;background:var(--grad-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--sp-4)}
.section-subtitle{font-size:var(--text-base);color:var(--text-muted);max-width:600px;margin:0 auto}

.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--sp-6)}
.glass-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-8);transition:all var(--ease);position:relative;overflow:hidden;box-shadow:var(--sh-sm)}
.glass-card::before{content:'';position:absolute;inset:0;border-radius:var(--r-xl);background:linear-gradient(135deg,rgba(240,147,43,.04) 0%,rgba(155,47,176,.05) 100%);opacity:0;transition:opacity var(--ease)}
.glass-card:hover{transform:translateY(-4px);border-color:rgba(155,47,176,.32);box-shadow:var(--sh-lg)}
.glass-card:hover::before{opacity:1}
.card-icon{width:52px;height:52px;border-radius:var(--r-lg);margin-bottom:var(--sp-5);background:var(--grad-brand);display:flex;align-items:center;justify-content:center;font-size:1.4rem;box-shadow:0 4px 14px rgba(155,47,176,.26);flex-shrink:0}
.card-title{font-size:var(--text-lg);font-weight:800;color:var(--text-primary);margin-bottom:var(--sp-3)}
.card-body{font-size:var(--text-sm);color:var(--text-muted);line-height:1.7}
.card-tags{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-5)}
.card-tag{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:var(--r-pill);background:rgba(155,47,176,.08);border:1px solid rgba(155,47,176,.2);color:#7A2E92}
.card-tag.warm{background:rgba(240,147,43,.1);border-color:rgba(240,147,43,.24);color:#B5691A}
.week-badge{display:inline-block;padding:4px 12px;border-radius:var(--r-pill);background:var(--grad-warm);color:white;font-size:.72rem;font-weight:800;letter-spacing:.05em;margin-bottom:var(--sp-4)}

.page-hero{padding:clamp(100px,14vw,160px) var(--sp-8) var(--sp-16);background:var(--grad-hero-bg);position:relative;overflow:hidden;border-bottom:1px solid var(--border)}
.page-hero::after{content:'';position:absolute;top:-100px;right:-80px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(155,47,176,.1) 0%,transparent 70%);pointer-events:none}
.page-hero-inner{position:relative;z-index:1;max-width:var(--content-wide);margin:0 auto}
.breadcrumb{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);color:var(--text-faint);margin-bottom:var(--sp-5)}
.breadcrumb a{color:var(--text-faint);text-decoration:none}
.breadcrumb a:hover{color:var(--h-acc)}
.breadcrumb-sep{opacity:.6}
.page-hero h1{font-size:var(--text-2xl);font-weight:900;letter-spacing:-.03em;background:var(--grad-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:var(--sp-4) 0}
.page-hero p{font-size:var(--text-base);color:var(--text-muted);max-width:640px}

.about-split{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--sp-12);align-items:center}
@media(max-width:900px){.about-split{grid-template-columns:1fr}}
.about-visual-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-10);position:relative;overflow:hidden;text-align:center;box-shadow:var(--sh-md)}
.pillar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-6)}
@media(max-width:900px){.pillar-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pillar-grid{grid-template-columns:1fr}}
.pillar-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--sh-sm)}
.pillar-icon{font-size:1.8rem;margin-bottom:var(--sp-3)}
.pillar-title{font-weight:800;font-size:var(--text-base);margin-bottom:var(--sp-2)}
.pillar-text{font-size:var(--text-sm);color:var(--text-muted)}

.lab-stack{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-6)}
.lab-stack-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--sh-sm)}
.lab-stack-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-4)}
.lab-stack-title{font-weight:800;font-size:var(--text-base)}
.lab-badge{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;color:#1e8f4f;background:rgba(30,143,79,.1);border-radius:var(--r-pill);padding:4px 10px}
.lab-badge::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#1e8f4f;box-shadow:0 0 6px #1e8f4f;animation:pg 2s infinite}
@keyframes pg{0%,100%{opacity:1}50%{opacity:.4}}
.lab-tech-pills{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.lab-tech-pill{font-size:.72rem;font-weight:600;padding:4px 10px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border)}

.case-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--sp-6)}
.case-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;transition:all var(--ease);box-shadow:var(--sh-sm)}
.case-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}
.case-header{padding:var(--sp-6);background:var(--grad-hero-bg);border-bottom:1px solid var(--border)}
.case-industry{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#7A2E92;margin-bottom:var(--sp-2)}
.case-title{font-size:var(--text-lg);font-weight:800}
.case-body{padding:var(--sp-6)}
.case-challenge{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--sp-5)}
.case-metrics{display:flex;gap:var(--sp-6);margin-bottom:var(--sp-5)}
.case-metric{text-align:center}
.case-metric-val{display:block;font-size:var(--text-lg);font-weight:900;background:var(--grad-warm);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.case-metric-label{font-size:.68rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em}
.case-tech{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.case-tech-tag{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:var(--r-pill);background:rgba(155,47,176,.08);border:1px solid rgba(155,47,176,.2);color:#7A2E92}

.insight-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--sp-6)}
.insight-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;transition:all var(--ease);box-shadow:var(--sh-sm)}
.insight-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}
.insight-thumb{height:120px;display:flex;align-items:center;justify-content:center;font-size:2.4rem;background:var(--grad-hero-bg);border-bottom:1px solid var(--border)}
.insight-body{padding:var(--sp-6)}
.insight-category{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#7A2E92;margin-bottom:var(--sp-2)}
.insight-title{font-size:var(--text-base);font-weight:800;margin-bottom:var(--sp-3);line-height:1.3}
.insight-excerpt{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--sp-4)}
.insight-meta{display:flex;gap:var(--sp-4);font-size:.72rem;color:var(--text-faint)}

.diff-table{width:100%;border-collapse:collapse;background:var(--surface-card);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-sm)}
.diff-table th,.diff-table td{padding:var(--sp-4) var(--sp-6);text-align:left;border-bottom:1px solid var(--border);font-size:var(--text-sm)}
.diff-table th{background:var(--surface-2);font-weight:800;color:var(--text-primary)}
.diff-table td:first-child{color:var(--text-faint)}
.diff-table td:last-child{color:var(--h-purple);font-weight:700}

.contact-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-16);max-width:var(--content-wide);margin:0 auto;padding:clamp(var(--sp-16),8vw,var(--sp-24)) var(--sp-8)}
@media(max-width:900px){.contact-split{grid-template-columns:1fr;gap:var(--sp-10)}}
.form-group{margin-bottom:var(--sp-5)}
.form-group label{display:block;font-size:var(--text-sm);font-weight:700;margin-bottom:var(--sp-2);color:var(--text-primary)}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--sp-3) var(--sp-4);border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface-1);color:var(--text-primary);font-size:var(--text-sm)}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--h-acc)}
.form-group textarea{min-height:120px;resize:vertical}
.contact-info-item{display:flex;gap:var(--sp-4);margin-bottom:var(--sp-6);align-items:flex-start}
.contact-info-icon{width:44px;height:44px;border-radius:var(--r-md);background:rgba(155,47,176,.08);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}
.contact-info-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:var(--sp-1)}
.contact-info-value{font-weight:700;color:var(--text-primary)}

.cal-shell{padding-top:0}
.cal-layout{display:grid;grid-template-columns:280px 1fr 300px;gap:var(--sp-6)}
@media(max-width:1100px){.cal-layout{grid-template-columns:1fr}}
.cal-sidebar{display:flex;flex-direction:column;gap:var(--sp-5)}
.cal-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--sh-sm)}
.cal-small-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);font-weight:700;margin-bottom:var(--sp-3)}
.cal-legend-item{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-sm);margin-bottom:var(--sp-2)}
.cal-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.cal-main{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--sh-sm)}
.cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-5)}
.cal-month-title{font-size:var(--text-lg);font-weight:800}
.cal-nav{display:flex;gap:var(--sp-2)}
.cal-nav button{width:36px;height:36px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border);font-weight:700;color:var(--text-primary)}
.cal-nav button:hover{background:rgba(155,47,176,.08)}
.cal-grid-head{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:var(--sp-2)}
.cal-grid-head span{text-align:center;font-size:.7rem;font-weight:700;color:var(--text-faint);text-transform:uppercase}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-day{aspect-ratio:1;border-radius:var(--r-md);border:1px solid var(--border);padding:var(--sp-2);cursor:pointer;transition:all var(--ease);display:flex;flex-direction:column;gap:2px;background:var(--surface-1)}
.cal-day:hover{border-color:var(--h-acc);background:rgba(155,47,176,.04)}
.cal-day.other-month{opacity:.35}
.cal-day.today{border-color:var(--h-acc);border-width:2px}
.cal-day.selected{background:rgba(155,47,176,.1);border-color:var(--h-acc)}
.cal-day-num{font-size:var(--text-sm);font-weight:700}
.cal-day-dots{display:flex;gap:2px;flex-wrap:wrap}
.cal-detail{display:flex;flex-direction:column;gap:var(--sp-4)}
.session-item{background:var(--surface-2);border-radius:var(--r-md);padding:var(--sp-4);border-left:3px solid var(--h-acc)}
.session-item-title{font-weight:700;font-size:var(--text-sm);margin-bottom:var(--sp-1)}
.session-item-meta{font-size:.72rem;color:var(--text-faint)}
.admin-input{width:100%;padding:var(--sp-2) var(--sp-3);border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--surface-1);color:var(--text-primary);font-size:var(--text-sm);margin-bottom:var(--sp-3)}
.admin-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.admin-actions button{flex:1}
.db-status{font-size:.68rem;padding:4px 10px;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:6px;font-weight:700;margin-bottom:var(--sp-4)}
.db-status.ok{background:rgba(30,143,79,.1);color:#1e8f4f}
.db-status.err{background:rgba(217,69,95,.1);color:#D9455F}
.db-status .dt{width:6px;height:6px;border-radius:50%;background:currentColor}

.footer{background:var(--surface-2);border-top:1px solid var(--border);padding:var(--sp-20) var(--sp-8) var(--sp-8)}
.footer-grid{max-width:var(--content-wide);margin:0 auto;display:grid;grid-template-columns:2fr repeat(4,1fr);gap:var(--sp-12);margin-bottom:var(--sp-12)}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr}.section{padding:var(--sp-12) var(--sp-4)}.hero-content{padding:0 var(--sp-4)}}
.footer-brand-logo{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}
.footer-brand-wordmark{font-size:1.25rem;font-weight:900;background:var(--grad-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.footer-tagline{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--sp-4);max-width:260px}
.footer-col h4{font-size:var(--text-xs);font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);margin-bottom:var(--sp-4)}
.footer-col ul{display:flex;flex-direction:column;gap:var(--sp-3)}
.footer-col a{color:var(--text-muted);text-decoration:none;font-size:var(--text-sm);transition:color var(--ease)}
.footer-col a:hover{color:var(--h-acc)}
.footer-bottom{max-width:var(--content-wide);margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--sp-4);border-top:1px solid var(--border);padding-top:var(--sp-6);font-size:var(--text-xs);color:var(--text-faint)}
.footer-legal{display:flex;gap:var(--sp-6)}
.footer-legal a{color:var(--text-faint);text-decoration:none}
.footer-legal a:hover{color:var(--h-acc)}
