@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&display=swap');

/* ═══ Tokens ═══════════════════════════════════ */
:root {
  --gold:   #B8860B;
  --gold-d: #936B09;
  --gold-l: #F3E7C4;
  --cream:  #FBF8F1;
  --paper:  #FFFFFF;
  --warm:   #F4EEE1;
  --line:   #E9E1D1;
  --line-2: #D8CCB2;
  --ink:    #1E1813;
  --ink-2:  #6E6354;
  --ink-3:  #A89C88;

  --grad-a: #C9962B;
  --grad-b: #7A4E12;
  --brandA: #C9962B;
  --brandB: #7A4E12;

  --ok:#15803D; --ok-bg:#DCFCE7;
  --warn:#B45309; --warn-bg:#FEF3C7;
  --bad:#B91C1C; --bad-bg:#FEE2E2;
  --pur:#6D28D9; --pur-bg:#EDE9FE;
  --gray:#6B7280; --gray-bg:#F3F4F6;

  --p-hi:#DC2626; --p-md:#D97706; --p-lo:#9CA3AF;

  --r:14px; --r-s:10px; --r-l:18px;
  --sh: 0 1px 3px rgba(30,24,19,.07), 0 1px 2px rgba(30,24,19,.04);
  --sh-lg: 0 18px 44px -18px rgba(30,24,19,.35);
  --nav: 60px;
  --top: 54px;
  --tab: 47px;
  --ease: cubic-bezier(.2,.7,.2,1);
}

* , *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:15px; line-height:1.5; color:var(--ink); background:var(--cream);
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;}
a{color:var(--gold);text-decoration:none;}
button,input,select,textarea{font:inherit;color:inherit;}
button{cursor:pointer;border:none;background:none;}
.serif{font-family:'Fraunces',Georgia,serif;}

/* ═══ Motion primitives ════════════════════════ */
@keyframes reveal { from{opacity:0;transform:translateY(16px) scale(.985);} to{opacity:1;transform:none;} }
@keyframes floaty { 0%,100%{transform:translate(0,0);} 50%{transform:translate(0,-22px);} }
@keyframes meshmove { 0%{transform:rotate(0deg) scale(1.2);} 100%{transform:rotate(360deg) scale(1.2);} }
@keyframes shimmer { from{transform:translateX(-120%) skewX(-18deg);} to{transform:translateX(220%) skewX(-18deg);} }
@keyframes pop { 0%{transform:scale(.8);opacity:0;} 100%{transform:scale(1);opacity:1;} }
@keyframes bob { 0%,100%{transform:translateY(0);} 50%{transform:translateY(6px);} }

/* Hidden until revealed — only when JS is active, so no-JS still shows content */
.has-js .reveal { opacity:0; }
.has-js .reveal.in { animation:reveal .62s var(--ease) forwards; animation-delay:var(--d,0ms); }
@media (prefers-reduced-motion: reduce){
  .has-js .reveal{opacity:1 !important;animation:none !important;}
  .lp-orb,.lp-mesh{animation:none !important;}
}

/* ═══ App frame (admin / team) ═════════════════ */
.frame{
  display:flex; flex-direction:column;
  height:100vh; height:100dvh;
  max-width:720px; margin:0 auto; background:var(--cream);
}
.scroll{
  flex:1 1 auto; overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:15px 14px calc(var(--nav) + env(safe-area-inset-bottom,0px) + 16px);
}

/* ═══ Top bar ══════════════════════════════════ */
.topbar{
  flex:0 0 auto; height:var(--top);
  background:linear-gradient(100deg,#1C130A,#2C1D0C);
  display:flex; align-items:center; gap:10px; padding:0 14px;
}
.topbar .brand{
  font-family:'Fraunces',serif; color:#E9C879; font-size:1.04rem; font-weight:600;
  flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.topbar .pick{
  height:36px; max-width:150px; padding:0 26px 0 10px;
  border:1px solid #3A280F; border-radius:9px;
  background:#291905 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath fill='%23D4A850' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E") no-repeat right 9px center;
  color:#D4A850; font-size:.78rem; -webkit-appearance:none; appearance:none;
}
.topbar .out{ color:#9C8156; font-size:.76rem; white-space:nowrap; padding:6px; transition:color .15s; }
.topbar .out:active,.topbar .out:hover{ color:#E9C879; }

/* ═══ Tabs ═════════════════════════════════════ */
.tabs{
  flex:0 0 auto; display:flex; overflow-x:auto; overflow-y:hidden;
  background:var(--paper); border-bottom:1px solid var(--line); scrollbar-width:none;
}
.tabs::-webkit-scrollbar{ display:none; }
.tab{
  flex:0 0 auto; height:var(--tab); padding:0 15px;
  font-size:.8rem; font-weight:500; color:var(--ink-3);
  border-bottom:2.5px solid transparent; white-space:nowrap;
  display:inline-flex; align-items:center; gap:5px; -webkit-tap-highlight-color:transparent;
  transition:color .15s;
}
.tab.on{ color:var(--gold); border-bottom-color:var(--gold); }

/* ═══ Bottom nav (fixed) ═══════════════════════ */
.botnav{
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  height:calc(var(--nav) + env(safe-area-inset-bottom,0px));
  padding-bottom:env(safe-area-inset-bottom,0px);
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px) saturate(140%); -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-top:1px solid var(--line); display:flex; max-width:720px; margin:0 auto;
}
.botnav a{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:3px; color:var(--ink-3); font-size:.61rem; font-weight:600;
  letter-spacing:.03em; text-transform:uppercase; -webkit-tap-highlight-color:transparent;
  transition:color .18s, transform .12s;
}
.botnav a .ic{ font-size:1.3rem; line-height:1; transition:transform .18s var(--ease); }
.botnav a.on{ color:var(--gold); }
.botnav a.on .ic{ transform:translateY(-2px) scale(1.12); }
.botnav.glass{ background:rgba(255,255,255,.82); }

/* ═══ Panels ═══════════════════════════════════ */
.panel{ display:none; }
.panel.on{ display:block; animation:fade .26s var(--ease); }
@keyframes fade{ from{opacity:0;transform:translateY(8px);} to{opacity:1;transform:none;} }

/* ═══ Section header ═══════════════════════════ */
.shead{ display:flex; align-items:center; justify-content:space-between; margin:2px 2px 13px; }
.shead h2{ font-family:'Fraunces',serif; font-size:1.3rem; font-weight:600; }
.subtle{ font-size:.82rem; color:var(--ink-2); margin:-6px 2px 14px; }
.label{ font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-3); margin:18px 2px 8px; }
.label:first-child{ margin-top:2px; }

/* ═══ Card ═════════════════════════════════════ */
.card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh); overflow:hidden; margin-bottom:10px; }
.card-pad{ padding:16px; }

/* ═══ Row ══════════════════════════════════════ */
.row{ display:flex; align-items:center; gap:12px; padding:13px 15px; border-bottom:1px solid var(--line); min-height:56px; transition:background .15s; }
.row:last-child{ border-bottom:none; }
.row:hover{ background:#FCFAF4; }
.row .lead{ font-size:1.35rem; flex-shrink:0; width:24px; text-align:center; }
.row .mid{ flex:1; min-width:0; }
.row .t1{ font-size:.9rem; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.row .t2{ font-size:.76rem; color:var(--ink-2); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.row .end{ display:flex; gap:6px; align-items:center; flex-shrink:0; }

/* ═══ Stats ════════════════════════════════════ */
.stat-grid{ display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-bottom:14px; }
.stat{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-s); padding:13px 14px; border-left:4px solid var(--gold); transition:transform .15s var(--ease), box-shadow .15s; }
.stat:hover{ transform:translateY(-2px); box-shadow:var(--sh); }
.stat .v{ font-family:'Fraunces',serif; font-size:1.7rem; font-weight:600; color:var(--gold); line-height:1; }
.stat .k{ font-size:.72rem; color:var(--ink-2); margin-top:4px; }

/* ═══ Progress ═════════════════════════════════ */
.bar{ display:flex; align-items:center; gap:9px; }
.bar .track{ flex:1; height:6px; background:var(--line); border-radius:3px; overflow:hidden; }
.bar .fill{ height:100%; background:linear-gradient(90deg,var(--grad-a),var(--gold)); border-radius:3px; transition:width .6s var(--ease); }
.bar .pct{ font-size:.72rem; color:var(--ink-2); white-space:nowrap; min-width:54px; text-align:right; }

/* ═══ Badge ════════════════════════════════════ */
.badge{ display:inline-flex; align-items:center; gap:3px; padding:3px 9px; border-radius:11px; font-size:.71rem; font-weight:600; white-space:nowrap; }

/* ═══ Buttons ══════════════════════════════════ */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:6px; height:44px; padding:0 20px; border-radius:24px; font-size:.84rem; font-weight:500; white-space:nowrap; transition:transform .12s var(--ease),opacity .15s,box-shadow .15s; -webkit-tap-highlight-color:transparent; }
.btn:active{ transform:scale(.96); opacity:.92; }
.btn.primary{ background:var(--gold); color:#fff; box-shadow:0 6px 16px -8px var(--gold); }
.btn.primary:hover{ box-shadow:0 10px 22px -8px var(--gold); }
.btn.ghost{ background:var(--warm); color:var(--ink); }
.btn.outline{ background:transparent; color:var(--gold); border:1.5px solid var(--line-2); }
.btn.danger{ background:var(--bad-bg); color:var(--bad); }
.btn.sm{ height:36px; padding:0 14px; font-size:.78rem; }
.btn.xs{ height:30px; padding:0 11px; font-size:.73rem; border-radius:18px; }
.btn.block{ width:100%; }
.btn.icon{ width:36px; padding:0; flex-shrink:0; }
.btn.icon.xs{ width:30px; }

/* ═══ Forms ════════════════════════════════════ */
.field{ margin-bottom:13px; }
.field > label{ display:block; font-size:.7rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-2); margin-bottom:5px; }
.inp{ width:100%; height:46px; padding:0 13px; border:1.5px solid var(--line); border-radius:var(--r-s); background:var(--cream); font-size:.92rem; outline:none; -webkit-appearance:none; appearance:none; transition:border-color .15s,box-shadow .15s; }
.inp:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(184,134,11,.12); }
textarea.inp{ height:auto; min-height:84px; padding:11px 13px; resize:vertical; line-height:1.5; }
select.inp{ padding-right:36px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath fill='%236E6354' d='M0 0l6 7 6-7z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 13px center; }
input[type=color].inp{ padding:5px; cursor:pointer; height:46px; }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:11px; }
@media(max-width:380px){ .row2{ grid-template-columns:1fr; } }

/* ═══ Type picker (admin new-event) ════════════ */
.typegrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:6px; }
.typeopt{ border:1.5px solid var(--line); border-radius:var(--r-s); background:var(--cream); padding:10px 6px; text-align:center; transition:transform .12s var(--ease),border-color .15s,background .15s; }
.typeopt .ti{ font-size:1.4rem; }
.typeopt .tl{ font-size:.68rem; color:var(--ink-2); margin-top:3px; font-weight:600; }
.typeopt.on{ border-color:var(--gold); background:#fff; box-shadow:0 0 0 3px rgba(184,134,11,.12); }
.typeopt:active{ transform:scale(.95); }

/* ═══ Check label ══════════════════════════════ */
.check{ display:flex; align-items:center; gap:10px; font-size:.88rem; padding:7px 0; cursor:pointer; }
.check input{ width:20px; height:20px; accent-color:var(--gold); flex-shrink:0; }

/* ═══ Checklist item ═══════════════════════════ */
.ck{ display:flex; align-items:center; gap:11px; padding:13px 15px; border-bottom:1px solid var(--line); min-height:54px; }
.ck:last-child{ border-bottom:none; }
.ck input[type=checkbox]{ width:21px; height:21px; accent-color:var(--gold); flex-shrink:0; }
.ck.done .ck-t{ text-decoration:line-through; color:var(--ink-3); }
.ck-t{ flex:1; font-size:.87rem; line-height:1.4; }
.ck-s{ font-size:.72rem; color:var(--ink-3); margin-top:2px; }
.dot{ width:7px; height:7px; border-radius:50%; flex-shrink:0; }

/* ═══ Timeline ═════════════════════════════════ */
.tl{ display:flex; gap:12px; padding:12px 15px; border-bottom:1px solid var(--line); align-items:flex-start; min-height:52px; }
.tl:last-child{ border-bottom:none; }
.tl-time{ font-size:.8rem; font-weight:600; color:var(--gold); min-width:60px; flex-shrink:0; padding-top:1px; }
.tl-mid{ flex:1; min-width:0; }
.tl-i{ font-size:.87rem; line-height:1.4; }
.tl-w{ font-size:.72rem; color:var(--ink-2); margin-top:2px; }
.tl-sel{ height:32px; padding:0 22px 0 8px; font-size:.76rem; border:1px solid var(--line); border-radius:8px; background:var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6'%3E%3Cpath fill='%236E6354' d='M0 0l4.5 6L9 0z'/%3E%3C/svg%3E") no-repeat right 7px center; -webkit-appearance:none; appearance:none; flex-shrink:0; }

/* ═══ Note ═════════════════════════════════════ */
.note{ display:flex; gap:10px; padding:11px 13px; border-radius:var(--r-s); margin-bottom:8px; align-items:flex-start; }
.note.info{ background:#EFF6FF; border-left:3px solid #60A5FA; }
.note.issue{ background:#FEF2F2; border-left:3px solid #F87171; }
.note.approved{ background:#ECFDF5; border-left:3px solid #34D399; }
.note.rejected{ background:#FEF2F2; border-left:3px solid #F87171; }
.note.pending{ background:#FFFBEB; border-left:3px solid #FBBF24; }
.note .nt{ flex:1; font-size:.85rem; line-height:1.5; }
.note .ns{ font-size:.69rem; color:var(--ink-3); margin-top:3px; }

/* ═══ Budget totals ════════════════════════════ */
.bud3{ display:grid; grid-template-columns:1fr 1fr 1fr; background:var(--paper); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; margin-bottom:11px; }
.bud3 > div{ padding:13px 8px; text-align:center; border-right:1px solid var(--line); }
.bud3 > div:last-child{ border-right:none; }
.bud3 .bn{ font-family:'Fraunces',serif; font-size:1.25rem; font-weight:600; }
.bud3 .bl{ font-size:.64rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-2); margin-top:3px; }

/* ═══ Status board card ════════════════════════ */
.sb{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r-s); padding:13px 14px; margin-bottom:10px; border-top:3px solid var(--gold); }
.sb-top{ display:flex; align-items:center; gap:10px; margin-bottom:11px; }
.sb-ic{ font-size:1.4rem; width:42px; height:42px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.sb-n{ font-size:.9rem; font-weight:600; }
.sb-d{ font-size:.73rem; color:var(--ink-2); margin-top:2px; }
.sb-sel{ width:100%; height:46px; padding:0 36px 0 13px; border:1.5px solid var(--line); border-radius:var(--r-s); background:var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7'%3E%3Cpath fill='%236E6354' d='M0 0l6 7 6-7z'/%3E%3C/svg%3E") no-repeat right 13px center; font-size:.9rem; -webkit-appearance:none; appearance:none; }
.sb-sel:focus{ border-color:var(--gold); outline:none; }

/* ═══ Pills ════════════════════════════════════ */
.pills{ display:flex; gap:7px; overflow-x:auto; padding-bottom:4px; margin-bottom:12px; scrollbar-width:none; }
.pills::-webkit-scrollbar{ display:none; }
.pill{ flex:0 0 auto; height:36px; padding:0 15px; border-radius:18px; font-size:.78rem; font-weight:500; border:1px solid var(--line); background:var(--paper); color:var(--ink-2); display:inline-flex; align-items:center; gap:4px; white-space:nowrap; -webkit-tap-highlight-color:transparent; transition:transform .12s; }
.pill:active{ transform:scale(.95); }
.pill.on{ background:var(--gold); color:#fff; border-color:var(--gold); }

/* ═══ Compose ══════════════════════════════════ */
.compose{ display:flex; gap:8px; margin-bottom:12px; }
.compose .inp{ border-radius:23px; }

/* ═══ Empty ════════════════════════════════════ */
.empty{ text-align:center; padding:44px 20px; color:var(--ink-2); }
.empty .ei{ font-size:2.4rem; display:block; margin-bottom:10px; opacity:.7; animation:bob 3s ease-in-out infinite; }
.empty p{ font-size:.86rem; }

/* ═══ Sheet (bottom drawer) ════════════════════ */
.sheet-bg{ position:fixed; inset:0; z-index:200; background:rgba(20,14,6,.46); display:flex; align-items:flex-end; justify-content:center; visibility:hidden; opacity:0; transition:opacity .22s,visibility .22s; backdrop-filter:blur(2px); }
.sheet-bg.open{ visibility:visible; opacity:1; }
.sheet{ background:var(--paper); width:100%; max-width:720px; border-radius:var(--r-l) var(--r-l) 0 0; max-height:90dvh; overflow-y:auto; padding-bottom:max(env(safe-area-inset-bottom),18px); transform:translateY(100%); transition:transform .28s var(--ease); }
.sheet-bg.open .sheet{ transform:translateY(0); }
.sheet .grip{ width:38px; height:4px; background:var(--line-2); border-radius:2px; margin:11px auto 2px; }
.sheet .head{ display:flex; align-items:center; justify-content:space-between; padding:10px 16px 13px; border-bottom:1px solid var(--line); }
.sheet .head h3{ font-family:'Fraunces',serif; font-size:1.18rem; font-weight:600; }
.sheet .body{ padding:15px 16px; }

/* ═══ Toast ════════════════════════════════════ */
#toast{ position:fixed; left:50%; z-index:300; bottom:calc(var(--nav) + env(safe-area-inset-bottom,0px) + 14px); transform:translateX(-50%) translateY(10px); background:#1E1813; color:#fff; padding:10px 20px; border-radius:22px; font-size:.82rem; opacity:0; transition:opacity .2s,transform .2s; pointer-events:none; max-width:88vw; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; box-shadow:var(--sh-lg); }
#toast.on{ opacity:1; transform:translateX(-50%) translateY(0); }
#toast.ok{ background:var(--ok); }
#toast.err{ background:var(--bad); }

/* ═══ Alert ════════════════════════════════════ */
.alert{ display:none; padding:11px 14px; border-radius:var(--r-s); font-size:.84rem; margin-bottom:12px; }
.alert.show{ display:block; }
.alert.err{ background:var(--bad-bg); color:var(--bad); }

/* ═══ Carry box ════════════════════════════════ */
.carry{ background:var(--warm); border:1px solid var(--line); border-radius:var(--r-s); padding:14px; margin-bottom:13px; }
.carry .ct{ font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2); margin-bottom:10px; }
.carry .hint{ font-size:.72rem; color:var(--ink-3); margin-top:8px; }

/* ═══ Login ════════════════════════════════════ */
.login{ min-height:100vh; min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:22px; background:linear-gradient(160deg,#1C130A,#3A2510); position:relative; overflow:hidden; }
.login::before{ content:""; position:absolute; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle,rgba(201,150,43,.4),transparent 65%); top:-160px; right:-120px; animation:floaty 9s ease-in-out infinite; }
.login-card{ background:var(--paper); border-radius:var(--r-l); padding:30px 24px; width:100%; max-width:360px; box-shadow:0 24px 60px rgba(0,0,0,.4); position:relative; animation:reveal .6s var(--ease); }
.login-card .top{ text-align:center; margin-bottom:22px; }
.login-card .top .lg{ font-size:2.2rem; }
.login-card .top h1{ font-family:'Fraunces',serif; font-size:1.45rem; font-weight:600; margin-top:6px; }
.login-card .top p{ font-size:.82rem; color:var(--ink-2); margin-top:3px; }

/* ═══ Guest hero (rich) ════════════════════════ */
.hero{ position:relative; min-height:300px; background:#1C130A; display:flex; flex-direction:column; justify-content:flex-end; padding:0 18px 26px; overflow:hidden; }
.hero .bg{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:.42; transform:scale(1.05); animation:heroZoom 14s ease-out forwards; }
@keyframes heroZoom{ to{transform:scale(1.14);} }
.hero .hero-grad{ position:absolute; inset:0; opacity:.55; mix-blend-mode:multiply; }
.hero .ov{ position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.1),rgba(0,0,0,.72)); }
.hero .hero-grain{ position:absolute; inset:0; opacity:.06; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.hero .ct{ position:relative; z-index:1; }
.hero-back{ position:absolute; top:14px; left:14px; z-index:2; color:rgba(255,255,255,.82); font-size:.78rem; font-weight:600; background:rgba(0,0,0,.25); backdrop-filter:blur(6px); padding:6px 12px; border-radius:16px; }
.hero-type{ display:inline-block; color:#fff; background:rgba(255,255,255,.16); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,.18); font-size:.72rem; font-weight:600; letter-spacing:.04em; padding:5px 12px; border-radius:14px; margin-bottom:11px; }
.hero .names{ font-family:'Fraunces',serif; font-size:2.5rem; font-weight:600; color:#fff; line-height:1.06; letter-spacing:-.01em; }
.hero-hosts{ color:#fff; font-size:1.02rem; font-weight:500; margin-top:6px; opacity:.92; }
.hero .tag{ color:rgba(255,255,255,.7); font-size:.9rem; margin-top:6px; font-style:italic; }
.hero .dt{ color:#fff; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; margin-top:10px; display:inline-block; padding-top:9px; border-top:1px solid rgba(255,255,255,.2); }

.banner-closed{ background:#1C130A; color:#E9C879; text-align:center; padding:11px; font-size:.85rem; font-weight:500; }

/* ═══ Countdown ════════════════════════════════ */
.cd{ background:#1C130A; display:flex; justify-content:center; gap:14px; padding:15px; }
.cd-rich{ background:linear-gradient(100deg,#1C130A,#2A1B0C); }
.cd .u{ text-align:center; min-width:46px; }
.cd .n{ font-family:'Fraunces',serif; font-size:1.7rem; font-weight:600; color:#E9C879; display:block; line-height:1; font-variant-numeric:tabular-nums; }
.cd .l{ font-size:.54rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.46); margin-top:5px; }
.cd .s{ font-size:1.5rem; color:rgba(255,255,255,.22); align-self:flex-start; padding-top:1px; }

.ev-wrap{ max-width:720px; margin:0 auto; padding:18px 14px calc(var(--nav) + env(safe-area-inset-bottom,0px) + 16px); }
.ev-foot{ text-align:center; padding:24px 0 8px; font-size:.72rem; color:var(--ink-3); }

/* ═══ Guest event card ═════════════════════════ */
.gc{ margin-bottom:12px; border-left:4px solid var(--gold); transition:transform .16s var(--ease), box-shadow .16s; }
.gc:hover{ transform:translateY(-2px); box-shadow:var(--sh-lg); }
.gc-h{ display:flex; align-items:center; gap:11px; padding:14px 14px 8px; }
.gc-ic{ font-size:1.5rem; width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.gc-n{ font-size:1.12rem; font-weight:600; }
.gc-t{ font-size:.78rem; font-weight:600; margin-top:2px; }
.gc-b{ padding:0 14px 13px; }
.gc-r{ display:flex; gap:8px; align-items:flex-start; font-size:.83rem; color:var(--ink-2); margin-bottom:7px; }
.gc-r .i{ flex-shrink:0; }
.gc-r .v strong{ display:block; color:var(--ink); font-weight:500; font-size:.82rem; }
.dress{ display:inline-flex; align-items:center; gap:4px; background:var(--cream); border:1px solid var(--gold-l); color:#6E4E08; padding:4px 11px; border-radius:13px; font-size:.75rem; font-weight:500; margin:2px 0 8px; }
.gc-note{ background:var(--warm); border-radius:var(--r-s); padding:8px 11px; font-size:.8rem; color:var(--ink-2); line-height:1.5; margin-bottom:9px; }
.gc-cd{ padding:9px 14px; border-top:1px solid var(--line); font-size:.77rem; color:var(--ink-2); display:flex; align-items:center; gap:7px; }
.gc-cd .v{ font-weight:600; color:var(--ink); }
.gc-btns{ display:flex; gap:8px; padding:0 14px 14px; flex-wrap:wrap; }

.datepill{ display:inline-flex; align-items:center; gap:5px; color:#fff; font-size:.74rem; font-weight:600; padding:6px 14px; border-radius:14px; margin:4px 0 11px; box-shadow:var(--sh); }

.upload{ border-radius:var(--r); padding:28px 18px; text-align:center; box-shadow:var(--sh-lg); }
.upload .em{ font-size:2.3rem; margin-bottom:10px; }

/* contact rows on guest page */
.ct-row{ display:flex; align-items:center; gap:12px; padding:12px 14px; border-bottom:1px solid var(--line); }
.ct-row:last-child{ border-bottom:none; }
.ct-row .av{ width:42px; height:42px; border-radius:50%; background:linear-gradient(150deg,var(--grad-a),var(--grad-b)); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.05rem; font-weight:600; text-transform:uppercase; flex-shrink:0; font-family:'Fraunces',serif; }
.ct-row .nm{ font-size:.92rem; font-weight:500; }
.ct-row .rl{ font-size:.74rem; color:var(--ink-2); }

.vn{ padding:14px; margin-bottom:10px; }
.vn h3{ font-size:.94rem; font-weight:600; margin-bottom:8px; }

/* ═══════════════════════════════════════════════
   LANDING SHOWCASE  (.lp)
   ═══════════════════════════════════════════════ */
body.lp{ background:#15100A; color:#F3ECE0; }

.lp-hero{ position:relative; min-height:92vh; min-height:92dvh; display:flex; flex-direction:column; padding:0 20px 40px; overflow:hidden; background:radial-gradient(120% 90% at 70% 0%, #2E2010 0%, #15100A 60%); }
.lp-mesh{ position:absolute; inset:-30%; z-index:0;
  background:
    radial-gradient(circle at 30% 30%, rgba(201,150,43,.45), transparent 40%),
    radial-gradient(circle at 75% 60%, rgba(122,78,18,.5), transparent 45%),
    radial-gradient(circle at 55% 85%, rgba(233,200,121,.25), transparent 40%);
  filter:blur(10px); animation:meshmove 40s linear infinite; }
.lp-orb{ position:absolute; border-radius:50%; z-index:0; filter:blur(36px); opacity:.5; }
.lp-orb.o1{ width:260px; height:260px; background:#C9962B; top:8%; left:-60px; animation:floaty 11s ease-in-out infinite; }
.lp-orb.o2{ width:200px; height:200px; background:#7A4E12; bottom:14%; right:-40px; animation:floaty 13s ease-in-out infinite reverse; }
.lp-orb.o3{ width:150px; height:150px; background:#E9C879; top:42%; right:30%; animation:floaty 9s ease-in-out infinite; }
.lp-grain{ position:absolute; inset:0; z-index:1; opacity:.05; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

.lp-nav{ position:relative; z-index:3; display:flex; align-items:center; justify-content:space-between; padding:18px 2px; }
.lp-logo{ font-size:1.3rem; font-weight:600; color:#F3ECE0; letter-spacing:.01em; }
.lp-cta-sm{ color:#15100A; background:#E9C879; padding:8px 16px; border-radius:18px; font-size:.78rem; font-weight:600; transition:transform .12s; }
.lp-cta-sm:active{ transform:scale(.95); }

.lp-hero-in{ position:relative; z-index:3; margin:auto 0; max-width:680px; }
.lp-eyebrow{ display:inline-block; color:#E9C879; font-size:.74rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; border:1px solid rgba(233,200,121,.3); padding:6px 14px; border-radius:20px; margin-bottom:20px; }
.lp-title{ font-size:clamp(2.4rem,7vw,3.8rem); font-weight:600; line-height:1.04; letter-spacing:-.02em; color:#FBF6EC; }
.lp-sub{ font-size:1.02rem; color:rgba(243,236,224,.74); margin-top:18px; max-width:520px; line-height:1.55; }
.lp-actions{ display:flex; gap:12px; margin-top:28px; flex-wrap:wrap; }
.lp-cta{ background:linear-gradient(120deg,#E9C879,#C9962B); color:#1C130A; font-weight:600; box-shadow:0 14px 30px -12px rgba(201,150,43,.8); height:48px; padding:0 24px; }
.lp-cta.ghost{ background:rgba(255,255,255,.07); color:#F3ECE0; border:1px solid rgba(255,255,255,.18); box-shadow:none; }
.lp-stats{ display:flex; gap:26px; margin-top:38px; }
.lp-stats div{ display:flex; flex-direction:column; }
.lp-stats b{ font-family:'Fraunces',serif; font-size:1.7rem; color:#E9C879; line-height:1; }
.lp-stats span{ font-size:.72rem; color:rgba(243,236,224,.6); margin-top:5px; letter-spacing:.03em; }
.lp-scroll{ position:absolute; left:50%; bottom:18px; transform:translateX(-50%); z-index:3; color:rgba(243,236,224,.6); font-size:1.6rem; animation:bob 2s ease-in-out infinite; }

.lp-main{ position:relative; z-index:2; background:var(--cream); color:var(--ink); border-radius:26px 26px 0 0; margin-top:-26px; padding:8px 16px 0; }
.lp-section{ max-width:1040px; margin:0 auto; padding:34px 0 6px; }
.lp-shead{ margin-bottom:20px; }
.lp-shead h2{ font-size:1.7rem; font-weight:600; letter-spacing:-.01em; }
.lp-shead p{ font-size:.9rem; color:var(--ink-2); margin-top:4px; }

/* Square sneak-peek tiles */
.tile-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px; }
@media(min-width:560px){ .tile-grid{ grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:18px; } }
.tile{ position:relative; aspect-ratio:1/1; border-radius:20px; overflow:hidden; display:block; box-shadow:var(--sh); color:#fff; isolation:isolate; transition:transform .25s var(--ease), box-shadow .25s; }
.tile:hover{ transform:translateY(-6px); box-shadow:0 26px 50px -20px rgba(30,24,19,.55); }
.tile-img{ position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .6s var(--ease); z-index:-2; }
.tile:hover .tile-img{ transform:scale(1.09); }
.tile-noimg{ display:flex; align-items:center; justify-content:center; }
.tile-glyph{ font-size:3.4rem; opacity:.9; filter:drop-shadow(0 6px 14px rgba(0,0,0,.3)); animation:floaty 7s ease-in-out infinite; }
.tile-veil{ position:absolute; inset:0; z-index:-1; background:linear-gradient(to top,rgba(15,11,5,.86) 4%,rgba(15,11,5,.25) 48%,rgba(15,11,5,.05) 100%); }
.tile::after{ content:""; position:absolute; top:0; left:0; width:55%; height:100%; z-index:1; background:linear-gradient(100deg,transparent,rgba(255,255,255,.32),transparent); transform:translateX(-150%) skewX(-18deg); pointer-events:none; }
.tile:hover::after{ animation:shimmer 1s var(--ease); }
.tile-type{ position:absolute; top:11px; left:11px; z-index:2; font-size:.66rem; font-weight:700; letter-spacing:.02em; padding:4px 9px; border-radius:12px; box-shadow:0 4px 10px rgba(0,0,0,.25); }
.tile-badge{ position:absolute; top:11px; right:11px; z-index:2; font-size:.64rem; font-weight:700; padding:4px 9px; border-radius:12px; background:rgba(255,255,255,.92); color:#1C130A; backdrop-filter:blur(4px); }
.tile-badge.is-past{ background:rgba(28,19,10,.6); color:#E9C879; border:1px solid rgba(233,200,121,.35); }
.tile-body{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:14px; }
.tile-name{ font-size:1.18rem; font-weight:600; line-height:1.12; text-shadow:0 2px 12px rgba(0,0,0,.5); }
.tile-host{ font-size:.78rem; color:rgba(255,255,255,.82); margin-top:3px; }
.tile-meta{ display:flex; align-items:center; justify-content:space-between; margin-top:9px; font-size:.72rem; color:rgba(255,255,255,.78); }
.tile-go{ font-weight:700; color:#fff; opacity:0; transform:translateX(-6px); transition:opacity .2s,transform .2s; }
.tile:hover .tile-go{ opacity:1; transform:none; }

.lp-contact{ max-width:1040px; margin:30px auto 0; padding:0 0 40px; }
.lp-contact-card{ position:relative; overflow:hidden; background:linear-gradient(135deg,#1C130A,#3A2510); border-radius:24px; padding:44px 26px; text-align:center; color:#fff; box-shadow:var(--sh-lg); }
.lp-contact-card::before{ content:""; position:absolute; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle,rgba(201,150,43,.5),transparent 65%); top:-120px; left:-60px; }
.lp-contact-glyph{ font-size:2.6rem; position:relative; }
.lp-contact-card h2{ font-size:1.8rem; font-weight:600; margin-top:10px; position:relative; }
.lp-contact-card p{ color:rgba(255,255,255,.72); margin-top:8px; font-size:.92rem; position:relative; max-width:420px; margin-left:auto; margin-right:auto; }
.lp-foot{ display:flex; flex-direction:column; align-items:center; gap:6px; padding:26px 0 30px; color:var(--ink-3); font-size:.74rem; }
.lp-foot .serif{ color:var(--ink-2); font-size:1.05rem; font-weight:600; }

/* ═══ Not found ════════════════════════════════ */
.nf-wrap{ min-height:100vh; min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:24px; position:relative; overflow:hidden; background:radial-gradient(120% 90% at 50% 0%, #2E2010, #15100A); }
.nf-card{ position:relative; z-index:2; text-align:center; max-width:380px; }
.nf-glyph{ font-size:3rem; margin-bottom:10px; }
.nf-card h1{ font-size:1.7rem; color:#FBF6EC; }
.nf-card p{ color:rgba(243,236,224,.7); margin:8px 0 22px; font-size:.92rem; }

/* ═══ Print ════════════════════════════════════ */
@media print{ .no-print{ display:none !important; } }

/* Collapsible "More details" inside the function sheet */
details.adv{margin:4px 0 12px;border:1px solid rgba(184,134,11,.22);border-radius:12px;padding:0 12px;background:rgba(184,134,11,.04);}
details.adv>summary{cursor:pointer;padding:11px 2px;font-size:.82rem;font-weight:600;color:var(--ink-2);list-style:none;display:flex;justify-content:space-between;align-items:center;}
details.adv>summary::-webkit-details-marker{display:none;}
details.adv>summary::after{content:'＋';color:var(--ink-3);font-weight:700;}
details.adv[open]>summary::after{content:'－';}
details.adv[open]{padding-bottom:6px;}

/* Staff "return to admin/team" button on the public guest page */
.admin-fab{
  position:fixed; right:14px; bottom:78px; z-index:60;
  background:var(--gold,#B8860B); color:#fff; font-weight:700; font-size:.82rem;
  padding:11px 16px; border-radius:999px; text-decoration:none;
  box-shadow:0 8px 24px rgba(0,0,0,.28); border:1px solid rgba(255,255,255,.25);
  display:inline-flex; align-items:center; gap:6px;
}
.admin-fab:active{ transform:translateY(1px); }

/* Vendor inline status setter on schedule cards (team view) */
.gc-set { margin-top:10px; display:flex; align-items:center; gap:8px; }
.gc-set label { font-size:.72rem; font-weight:600; color:var(--ink-3,#A89C88); text-transform:uppercase; letter-spacing:.4px; }
.gc-set select { flex:1; padding:7px 9px; border:1px solid rgba(0,0,0,.12); border-radius:9px; font-size:.85rem; background:#fff; }
