:root { --ink:#201a2b; --deep:#27203b; --cream:#fffdf7; --paper:#f7f3ed; --muted:#786f7e; --line:#e7e1d9; --purple:#7453d8; --orange:#ff8a52; --blue:#4a8fe4; --green:#4eaa7d; --rose:#cf6f91; --teal:#45a9a7; --shadow:0 18px 45px rgba(45,31,69,.12); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--cream); font-family:'DM Sans',Arial,sans-serif; font-size:16px; } button,input,textarea { font:inherit; } button,a { -webkit-tap-highlight-color:transparent; } button { cursor:pointer; } a { color:inherit; text-decoration:none; } .sr-only { clip:rect(0,0,0,0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }.skip-link{position:absolute;top:-48px;left:10px;background:#fff;padding:10px;z-index:10}.skip-link:focus{top:10px}
.site-header { width:min(1200px,calc(100% - 64px)); height:78px; margin:auto; display:flex; align-items:center; justify-content:space-between; position:relative; z-index:5; }.brand { display:inline-flex; gap:9px; align-items:center; font-family:'Fraunces',serif; font-size:21px; font-weight:700; letter-spacing:-.7px; }.brand > span:last-child > span { color:#8b6ce0; }.brand-mark { background:#7a5bdd; color:#fff; width:29px; height:29px; display:grid; place-items:center; border-radius:10px 10px 10px 2px; font-family:'Fraunces',serif; font-size:18px; transform:rotate(-8deg); }.main-nav { display:flex; align-items:center; gap:30px; font-size:14px; font-weight:600; }.main-nav a { color:#5e5664; transition:color .2s; }.main-nav a:hover { color:#6f4fcf; }.nav-admin,.text-button { border:0; background:transparent; color:var(--ink); font-weight:700; padding:0; }.nav-admin span,.text-button span { margin-left:7px; color:#7658ce; font-size:18px; }.menu-button { display:none; border:0; background:transparent; padding:7px; }.menu-button span:not(.sr-only) { display:block; width:23px; height:2px; margin:5px; background:var(--ink); }
.hero { min-height:620px; position:relative; overflow:hidden; color:#fff; background:var(--deep); }.hero-copy { position:relative; width:min(1200px,calc(100% - 64px)); margin:auto; padding:91px 0 96px; z-index:2; }.eyebrow { letter-spacing:1.6px; text-transform:uppercase; font-size:11px; color:#ded5ff; font-weight:700; display:flex; gap:8px; align-items:center; margin:0 0 21px; }.eyebrow span { width:22px; height:1px; background:currentColor; display:inline-block; }.eyebrow.dark { color:#8c6ddc; }.hero h1,.section-heading h2,.statement h2,.contact-intro h2,.modal h2 { font-family:'Fraunces',Georgia,serif; font-weight:600; letter-spacing:-2.4px; line-height:.98; margin:0; }.hero h1 { font-size:clamp(55px,7vw,91px); max-width:650px; }.hero h1 em,.section-heading h2 em,.statement h2 em,.contact-intro h2 em { color:#bca9ff; font-style:italic; }.hero-text { max-width:444px; color:#d4ccdd; line-height:1.65; margin:29px 0 30px; }.hero-actions { display:flex; align-items:center; gap:23px; }.button { border:0; border-radius:3px; display:inline-flex; gap:20px; justify-content:center; align-items:center; padding:14px 19px; font-size:14px; font-weight:700; transition:transform .2s, box-shadow .2s; }.button:hover { transform:translateY(-2px); box-shadow:0 8px 18px rgba(32,26,43,.2); }.button span { font-size:19px; line-height:0; }.button-light { background:#fff; color:var(--ink); }.button-dark { background:var(--ink); color:#fff; }.text-button { color:#fff; }.hero-proof { display:flex; align-items:center; gap:12px; margin-top:76px; }.hero-proof p { font-size:12px; line-height:1.45; color:#ccc4d5; margin:0; }.hero-proof strong { color:#fff; }.avatars { display:flex; }.avatars span { width:29px; height:29px; border-radius:50%; border:2px solid var(--deep); margin-left:-7px; display:grid; place-items:center; font-size:8px; font-weight:700; background:#dc9183; }.avatars span:nth-child(2) { background:#e6c571; }.avatars span:nth-child(3) { background:#80c6b3; }.avatars span:last-child { background:#a386e2; font-size:15px; }.avatars span:first-child { margin:0; }.hero-visual { position:absolute; height:100%; width:52%; right:0; top:0; overflow:hidden; }.hero-glow { position:absolute; border-radius:50%; filter:blur(1px); }.glow-one { width:540px; height:540px; background:#5f45b8; right:-160px; top:54px; opacity:.42; }.glow-two { width:310px; height:310px; background:#e97386; right:150px; bottom:-170px; opacity:.16; }.orb { border-radius:50%; position:absolute; }.orb-a { width:258px; height:258px; right:110px; top:160px; background:linear-gradient(140deg,#a692fc,#7052cf 56%,#39427e); box-shadow:inset -36px -32px 48px rgba(31,20,83,.28),0 0 70px rgba(156,124,255,.36); }.orb-b { width:78px; height:78px; right:12px; top:93px; background:linear-gradient(140deg,#f0c5fd,#a983ed); box-shadow:0 0 40px rgba(229,184,255,.36); }.orbit { position:absolute; border:1px solid rgba(255,255,255,.18); border-radius:50%; transform:rotate(-29deg); }.orbit-a { width:565px; height:244px; right:-58px; top:160px; }.orbit-b { width:410px; height:177px; right:16px; top:207px; }.visual-card { position:absolute; box-shadow:0 16px 38px rgba(13,8,38,.28); }.calendar-card { right:325px; top:113px; width:139px; background:#f8f6ff; color:var(--ink); padding:14px; transform:rotate(-8deg); border-radius:3px; }.calendar-card .card-icon { font-size:14px; color:#9a7ae8; float:right; }.calendar-card div { display:flex; align-items:baseline; gap:8px; }.calendar-card strong { font-size:11px; color:#837993; letter-spacing:1px; }.calendar-card b { font-family:'Fraunces'; font-size:44px; }.calendar-card p { border-top:1px solid #ddd8ec; padding-top:8px; margin:3px 0 0; font-size:11px; font-weight:700; }.ticket-card { width:160px; background:#ffb7b0; right:65px; bottom:87px; color:#5c3048; padding:15px; transform:rotate(8deg); border-radius:3px; }.ticket-card span { font-size:15px; }.ticket-card p { font-size:12px; line-height:1.05; margin:27px 0 8px; letter-spacing:1.5px; }.ticket-card strong { font-size:18px; }.ticket-card i { color:#744762; font-size:21px; font-style:normal; }.floating-note { background:#fffbe2; color:#695a25; width:134px; padding:15px 13px; right:364px; bottom:120px; transform:rotate(6deg); border-radius:2px; }.floating-note span { color:#efb93f; }.floating-note p { font-family:'Fraunces'; line-height:1.18; margin:15px 0 0; font-size:17px; }.hero-star { position:absolute; color:#e8dffe; font-size:18px; }.star-one { right:430px; top:75px; }.star-two { right:73px; top:250px; font-size:10px; }.star-three { right:220px; bottom:50px; font-size:11px; }.hero-bottom { position:absolute; bottom:20px; width:min(1200px,calc(100% - 64px)); left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:12px; color:#a89fae; font-size:9px; letter-spacing:1.5px; z-index:2; }.hero-bottom span:last-child { margin-left:auto; }.scroll-line { height:1px; width:35px; background:#a89fae; }
.events-section { width:min(1200px,calc(100% - 64px)); margin:0 auto; padding:110px 0 112px; }.section-heading { display:flex; justify-content:space-between; align-items:flex-end; }.section-heading h2,.contact-intro h2 { font-size:clamp(43px,5vw,65px); }.section-heading h2 em { color:#8b6de0; }.section-heading > p { max-width:260px; color:var(--muted); font-size:15px; line-height:1.6; margin-bottom:6px; }.event-controls { display:flex; justify-content:space-between; gap:20px; align-items:center; margin:52px 0 28px; }.search-box { height:43px; width:300px; border-bottom:1px solid #cfc8c0; display:flex; gap:8px; align-items:center; color:#807787; }.search-box span { font-size:27px; line-height:0; transform:rotate(-20deg); }.search-box input { width:100%; border:0; outline:0; background:transparent; color:var(--ink); font-size:13px; }.search-box input::placeholder { color:#aaa2aa; }.filters { display:flex; flex-wrap:wrap; gap:8px; }.filter { background:transparent; border:1px solid #ded8d2; color:#746b76; border-radius:30px; padding:8px 13px; font-size:12px; transition:.2s; }.filter.active,.filter:hover { background:var(--ink); border-color:var(--ink); color:#fff; }.event-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; min-height:220px; }.loading,.empty-results { grid-column:1/-1; text-align:center; padding:65px 15px; color:var(--muted); }.event-card { border:1px solid #e8e2dc; background:#fffefa; padding:21px 20px 19px; min-height:274px; display:flex; flex-direction:column; transition:transform .25s,box-shadow .25s; }.event-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }.event-card-top { display:flex; align-items:flex-start; justify-content:space-between; }.event-date { display:flex; align-items:center; gap:8px; }.event-date .day { font-family:'Fraunces'; font-size:40px; line-height:.75; letter-spacing:-2px; }.event-date .month { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:1px; }.event-accent { width:27px; height:27px; border-radius:50%; position:relative; overflow:hidden; }.event-accent:after { content:''; position:absolute; width:32px; height:32px; background:rgba(255,255,255,.48); border-radius:50%; top:-13px; right:-11px; }.purple{background:var(--purple)} .orange{background:var(--orange)} .blue{background:var(--blue)} .green{background:var(--green)} .rose{background:var(--rose)} .teal{background:var(--teal)} .event-card h3 { font-family:'Fraunces'; font-size:26px; font-weight:600; letter-spacing:-.8px; line-height:1.05; margin:31px 0 11px; }.event-card .meta { color:#887e8b; font-size:12px; display:flex; gap:9px; align-items:center; }.event-card .meta span { color:#b6adb9; }.event-card .event-description { color:#716774; font-size:13px; line-height:1.45; margin:12px 0 auto; min-height:37px; }.event-card-footer { border-top:1px solid #eee8e3; margin-top:16px; padding-top:14px; display:flex; justify-content:space-between; align-items:center; }.seats { color:#8c8290; font-size:11px; }.register-link { border:0; background:transparent; color:#7453d8; font-size:12px; padding:0; font-weight:700; }.register-link:hover { text-decoration:underline; }.view-all { display:block; margin:40px auto 0; border:0; border-bottom:1px solid var(--ink); background:transparent; padding:0 0 5px; color:var(--ink); font-size:14px; font-weight:700; }.view-all span { color:#8b6ddd; margin-left:7px; }
.statement { background:#e8dfdc; text-align:center; padding:103px 28px 87px; }.eyebrow.center { justify-content:center; color:#927d8e; }.statement h2 { font-size:clamp(47px,6vw,76px); }.statement h2 em { color:#84648d; }.statement > p:not(.eyebrow) { max-width:390px; margin:26px auto 51px; line-height:1.6; color:#6f6470; font-size:15px; }.statement-stats { margin:auto; max-width:740px; display:grid; grid-template-columns:repeat(3,1fr); }.statement-stats > div { display:flex; flex-direction:column; gap:8px; border-left:1px solid #cfc2c1; padding:7px 15px; }.statement-stats > div:first-child { border:0; }.statement-stats strong { font-family:'Fraunces'; font-size:38px; letter-spacing:-2px; }.statement-stats span { color:#766b74; font-size:11px; text-transform:uppercase; letter-spacing:.8px; }
.contact-section { width:min(1020px,calc(100% - 64px)); margin:auto; padding:112px 0; display:grid; grid-template-columns:1fr 1fr; gap:105px; align-items:center; }.contact-intro p:not(.eyebrow) { line-height:1.65; color:var(--muted); max-width:355px; font-size:15px; margin:29px 0; }.contact-intro a { border-bottom:1px solid var(--ink); padding-bottom:5px; font-weight:700; font-size:14px; }.contact-intro a span { color:#7656d3; font-size:17px; margin-left:8px; }.card-form { background:#f5f1eb; padding:32px; }.card-form h3,.dashboard-columns h3,.registrations h3 { font-family:'Fraunces'; font-size:24px; margin:0 0 23px; letter-spacing:-.8px; } label { display:block; color:#605766; font-size:11px; font-weight:700; letter-spacing:.4px; margin-bottom:15px; } input,textarea { display:block; width:100%; margin-top:7px; border:1px solid #dcd5cf; background:#fffefb; outline:0; padding:11px 10px; border-radius:2px; color:var(--ink); font-size:13px; font-weight:400; transition:border .2s,box-shadow .2s; } input:focus,textarea:focus { border-color:#8566da; box-shadow:0 0 0 3px rgba(133,102,218,.12); } textarea { min-height:89px; resize:vertical; }.card-form .button { width:100%; margin-top:3px; }.form-feedback { min-height:18px; margin:11px 0 0; color:#6c5cb2; font-size:12px; font-weight:600; line-height:1.3; }.form-feedback.error { color:#aa4253; }
footer { background:var(--deep); color:#fff; padding:48px max(32px,calc((100% - 1200px)/2)) 20px; }.footer-top { display:flex; justify-content:space-between; align-items:flex-start; padding-bottom:45px; }.footer-brand { color:#fff; }.newsletter { width:290px; }.newsletter > p:first-child { margin:0 0 13px; font-family:'Fraunces'; font-size:19px; }.newsletter form { display:flex; border-bottom:1px solid #82778b; }.newsletter input { border:0; margin:0; padding:8px 0; color:#fff; background:transparent; }.newsletter button { border:0; background:transparent; color:#c0aaff; font-size:24px; }.footer-bottom { border-top:1px solid #4c415d; padding-top:18px; color:#a49aa9; display:flex; justify-content:space-between; font-size:11px; }.footer-bottom a { color:#d6ccde; }
.modal { color:var(--ink); border:0; box-shadow:0 20px 80px rgba(12,7,25,.4); padding:27px 31px 32px; width:min(560px,calc(100% - 28px)); max-height:calc(100% - 28px); overflow:auto; }.modal::backdrop { background:rgba(28,20,42,.68); backdrop-filter:blur(3px); }.modal-top { display:flex; justify-content:space-between; align-items:center; }.modal-kicker { color:#896bd9; font-size:10px; font-weight:700; letter-spacing:1.2px; }.close-modal { border:0; background:transparent; color:#665e69; font-size:29px; line-height:1; padding:0 3px; }.modal h2 { font-size:39px; margin:30px 0 8px; }.modal-event,.small-copy { color:#756b77; font-size:14px; margin:0 0 24px; }.input-row { display:grid; grid-template-columns:1fr 1fr; gap:13px; }.modal .button { margin-top:3px; }.success-state { text-align:center; padding:23px 0 6px; }.success-state > div { background:#e0f2e6; color:#2d8e5d; width:50px; height:50px; border-radius:50%; display:grid; place-items:center; margin:auto; font-size:23px; }.success-state p { color:var(--muted); margin:16px auto 24px; max-width:330px; line-height:1.5; }.admin-modal { width:min(920px,calc(100% - 28px)); }.admin-modal h2 { margin-top:24px; }.admin-modal #loginPanel { width:min(400px,100%); margin:auto; padding-bottom:8px; }.admin-modal .demo-note { color:#938998; text-align:center; font-size:11px; margin:20px 0 0; }.dashboard-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:15px; }.dashboard-heading h2 { font-size:38px; margin:24px 0 2px; }.dashboard-heading p { color:var(--muted); font-size:13px; margin:0; }.dashboard-heading > div:last-child { display:flex; align-items:center; gap:15px; }.outline-button { border:1px solid #cfc6d8; color:#6455a2; background:#fff; border-radius:3px; padding:8px 10px; font-weight:700; font-size:11px; }.dark-text { color:var(--ink); font-size:12px; }.dashboard-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:26px 0; }.dash-stat { padding:13px; background:#f2edf8; }.dash-stat:nth-child(2){background:#f9efdd}.dash-stat:nth-child(3){background:#e9f4ef}.dash-stat:nth-child(4){background:#f8e9ed}.dash-stat strong { display:block; font-family:'Fraunces'; font-size:28px; }.dash-stat span { color:#756b7a; font-size:10px; text-transform:uppercase; letter-spacing:.7px; }.dashboard-columns { display:grid; grid-template-columns:1fr 1fr; gap:26px; padding:24px 0; border-top:1px solid var(--line); }.admin-form textarea { min-height:65px; }.admin-form .button { width:100%; }.admin-list { max-height:316px; overflow:auto; border-top:1px solid var(--line); }.admin-event { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 2px; border-bottom:1px solid var(--line); }.admin-event strong { display:block; font-size:13px; }.admin-event span { color:var(--muted); font-size:11px; }.delete-event { border:0; color:#a64257; background:#fff0f2; font-size:10px; font-weight:700; padding:6px 8px; }.registrations { padding-top:23px; border-top:1px solid var(--line); }.table-wrap { overflow:auto; }.registrations table { border-collapse:collapse; width:100%; font-size:12px; text-align:left; }.registrations th { color:#877b8c; text-transform:uppercase; font-size:9px; letter-spacing:.7px; }.registrations th,.registrations td { border-bottom:1px solid var(--line); padding:10px 7px; }.registrations td { color:#5f5661; }.registrations td:first-child { color:var(--ink); font-weight:700; }.empty-cell { text-align:center; padding:24px!important; color:var(--muted)!important; font-weight:400!important; }.toast { position:fixed; left:50%; bottom:22px; transform:translate(-50%,100px); background:var(--ink); color:#fff; border-radius:3px; padding:12px 17px; box-shadow:var(--shadow); font-weight:600; font-size:13px; opacity:0; transition:.25s; z-index:10; }.toast.show { transform:translate(-50%,0); opacity:1; }
@media (max-width:800px) { .site-header,.hero-copy,.events-section,.contact-section,.hero-bottom { width:calc(100% - 40px); }.site-header { height:67px; }.menu-button { display:block; }.main-nav { display:none; position:absolute; right:0; top:59px; min-width:180px; background:#fff; box-shadow:var(--shadow); padding:15px; align-items:stretch; gap:0; }.main-nav.open { display:flex; flex-direction:column; }.main-nav a,.nav-admin { padding:10px; text-align:left; }.hero { min-height:645px; }.hero-copy { padding-top:72px; }.hero-visual { width:100%; opacity:.65; }.hero-copy { pointer-events:none; }.hero-actions,.hero-proof { pointer-events:auto; }.hero h1 { font-size:63px; }.hero-text { max-width:370px; }.orb-a { right:-47px; top:345px; width:190px; height:190px; }.orbit-a { right:-205px; top:335px; }.orbit-b { right:-100px; top:365px; }.calendar-card { right:182px; top:360px; transform:rotate(-8deg) scale(.8); }.ticket-card { right:33px; bottom:27px; transform:rotate(8deg) scale(.78); }.floating-note { right:178px; bottom:16px; transform:rotate(6deg) scale(.78); }.orb-b,.hero-star { display:none; }.event-grid { grid-template-columns:repeat(2,1fr); }.contact-section { gap:50px; }.contact-section { grid-template-columns:1fr; }.contact-intro p:not(.eyebrow) { max-width:500px; }.footer-top { gap:24px; }.dashboard-columns { grid-template-columns:1fr; } }
@media (max-width:540px) { .hero h1 { font-size:49px; }.hero-copy { padding-top:55px; }.hero-text { margin:23px 0; font-size:14px; max-width:310px; }.hero-proof { margin-top:51px; }.hero-bottom { bottom:15px; }.section-heading { display:block; }.section-heading > p { margin-top:18px; }.events-section { padding:77px 0; }.event-controls { display:block; margin:34px 0 23px; }.search-box { width:100%; }.filters { margin-top:17px; }.event-grid { grid-template-columns:1fr; }.event-card { min-height:239px; }.statement { padding:73px 20px; }.statement-stats strong { font-size:30px; }.statement-stats span { font-size:9px; }.contact-section { padding:77px 0; }.card-form { padding:24px 19px; }.footer-top,.footer-bottom { display:block; }.newsletter { margin-top:35px; width:100%; }.footer-bottom span,.footer-bottom a { display:block; margin:9px 0; }.modal { padding:23px 19px; }.modal h2 { font-size:34px; }.input-row { grid-template-columns:1fr; gap:0; }.dashboard-heading { display:block; }.dashboard-heading > div:last-child { margin-top:17px; }.dashboard-stats { grid-template-columns:repeat(2,1fr); }.hero-visual { opacity:.55; }.calendar-card { right:120px; }.floating-note { right:142px; }.ticket-card { right:8px; } }
