@font-face{font-family:Archivo;src:url(/assets/Archivo-Variable-DuIT1y7V.ttf)format("truetype");font-weight:100 900;font-stretch:62% 125%;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/assets/IBMPlexMono-Medium-Bl6ckbVJ.ttf)format("truetype");font-weight:500;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0a0d;--surface:#141419;--surface-raised:#1e1e25;--line:#2e2e39;--line-strong:#6a6878;--text:#f4f2f7;--text-muted:#a6a3b0;--text-subtle:#8a8794;--strobe:#ff4fd8;--on-strobe:#0a0a0d;--strobe-tint:#3a1533;--sodium:#ffb547;--success:#62c9ff;--danger:#ff6a5c;--focus:#f4f2f7;--font-display:"Archivo", "Helvetica Neue", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--r-sm:6px;--r-md:12px;--r-lg:20px;--tabbar-h:64px;--header-h:64px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:17px;line-height:1.4}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}img{max-width:100%;display:block}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.display{font-family:var(--font-display);text-transform:uppercase;letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:900;font-stretch:125%;line-height:.95}.display-l{font-size:32px;font-weight:800}.display-m{font-size:22px;font-weight:800}.label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:12px;font-weight:500;line-height:16px}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.small{font-size:13px;line-height:16px}.callout{font-size:15px;line-height:20px}.app{min-height:100dvh}.page{width:100%;max-width:1080px;padding:var(--s5) var(--s4) calc(var(--tabbar-h) + var(--s6) + env(safe-area-inset-bottom));margin:0 auto}.page.narrow{max-width:560px}.stack{flex-direction:column;display:flex}.row{align-items:center;display:flex}.gap-1{gap:var(--s1)}.gap-2{gap:var(--s2)}.gap-3{gap:var(--s3)}.gap-4{gap:var(--s4)}.gap-5{gap:var(--s5)}.gap-6{gap:var(--s6)}.grow{flex:auto;min-width:0}.section{gap:var(--s3);flex-direction:column;display:flex}.section-head{justify-content:space-between;align-items:baseline;gap:var(--s3);display:flex}.hscroll{gap:var(--s3);scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--s4));padding:0 var(--s4) var(--s1);scrollbar-width:none;display:flex;overflow-x:auto}.hscroll::-webkit-scrollbar{display:none}.hscroll>*{scroll-snap-align:start;flex-shrink:0}.header{z-index:20;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{max-width:1080px;height:var(--header-h);padding:0 var(--s4);align-items:center;gap:var(--s4);margin:0 auto;display:flex}.logo{font-family:var(--font-display);font-size:28px;font-weight:900;font-stretch:125%;line-height:1}.nav{gap:var(--s1);margin-left:var(--s4);display:none}.nav a{color:var(--text-muted);border-radius:999px;padding:8px 14px;font-size:15px;font-weight:600}.nav a:hover{color:var(--text)}.nav a.active{color:var(--text);background:var(--surface-raised)}.tabbar{z-index:20;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line);justify-content:space-around;align-items:center;display:flex;position:fixed;inset:auto 0 0}.tabbar a{min-width:72px;color:var(--text-muted);flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:11px;font-weight:600;display:flex}.tabbar a.active{color:var(--strobe)}@media (width>=760px){.nav{display:flex}.tabbar{display:none}.page{padding-bottom:var(--s7)}}.btn{justify-content:center;align-items:center;gap:var(--s2);min-height:54px;padding:0 var(--s5);border-radius:var(--r-md);cursor:pointer;text-align:center;white-space:nowrap;border:1px solid #0000;font-size:17px;font-weight:600;transition:transform .15s,background-color .15s,opacity .15s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn.block{width:100%}.btn.sm{min-height:44px;padding:0 var(--s4);font-size:15px}.btn.xs{min-height:34px;padding:0 14px;font-size:15px;font-weight:500}.btn-primary{background:var(--accent,var(--strobe));color:var(--on-strobe)}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-secondary{border-color:var(--line-strong);color:var(--text);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--surface-raised)}.btn-light{background:var(--text);color:var(--bg)}.btn-ghost{color:var(--text-muted);min-height:44px;padding:0 var(--s3);background:0 0;font-size:15px;font-weight:500}.btn-ghost:hover{color:var(--text)}.icon-btn{width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-raised)}.icon-btn.overlay{background:#0a0a0dd9}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--text-muted);font-size:13px}.input,.textarea,.select{border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface-raised);width:100%;min-height:50px;color:var(--text);padding:0 14px;font-size:17px}.textarea{resize:vertical;min-height:96px;padding:12px 14px;line-height:1.4}.input::placeholder,.textarea::placeholder{color:var(--text-subtle)}.input:focus,.textarea:focus,.select:focus{border:2px solid var(--focus);outline:none;padding-left:13px}.textarea:focus{padding:11px 13px}.input-prefix{position:relative}.input-prefix>b{color:var(--text-subtle);pointer-events:none;font-weight:400;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-prefix>.input{padding-left:30px}.input-prefix>.input:focus{padding-left:29px}.title-input{border:0;border-bottom:1px solid var(--line-strong);width:100%;color:var(--text);background:0 0;padding:10px 0;font-size:26px;font-weight:650}.title-input:focus{border-bottom:2px solid var(--focus);outline:none}.title-input::placeholder{color:var(--text-subtle)}.error{color:var(--danger);align-items:center;gap:6px;font-size:14px;display:flex}.notice{color:var(--success);font-size:14px}.card{background:var(--surface);border-radius:var(--r-lg);padding:var(--s4)}.empty{background:var(--surface);border-radius:var(--r-lg);padding:var(--s4);flex-direction:column;gap:4px;display:flex}.empty strong{font-size:17px}.empty p{color:var(--text-muted);margin:0;font-size:15px}.list-card{background:var(--surface);border-radius:var(--r-lg);overflow:hidden}.list-card>*+*{border-top:1px solid var(--line)}.list-row{align-items:center;gap:var(--s3);min-height:52px;padding:0 14px;display:flex}.list-row>svg{color:var(--text-muted);flex-shrink:0}.list-row .input,.list-row .select{text-align:right;background:0 0;border-color:#0000;min-height:40px;padding:0;font-size:15px}.list-row .input:focus{border:0;outline:none;padding:0}.list-row label{flex:auto;font-size:15px;font-weight:500}.chip{border-radius:var(--r-sm);border:1px solid var(--line-strong);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;height:34px;padding:0 14px;font-size:15px;font-weight:500;display:inline-flex}.chip[aria-pressed=true]{background:var(--strobe-tint);border-color:var(--strobe)}.pill{height:26px;color:var(--bg);border-radius:999px;align-items:center;padding:0 10px;font-size:13px;font-weight:600;display:inline-flex}.segmented{background:var(--surface-raised);border-radius:8px;padding:2px;display:inline-flex}.segmented button{height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 14px;font-size:14px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--text);color:var(--bg)}.toggle{appearance:none;background:var(--surface-raised);border:1px solid var(--line-strong);cursor:pointer;border-radius:999px;flex-shrink:0;width:51px;height:31px;transition:background-color .15s;position:relative}.toggle:after{content:"";background:var(--text);border-radius:50%;width:25px;height:25px;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle:checked{background:var(--strobe);border-color:var(--strobe)}.toggle:checked:after{transform:translate(20px)}.upcoming-card{flex-direction:column;gap:10px;width:272px;display:flex}.cover{border-radius:var(--r-lg);background:var(--evt-bg,var(--bg));position:relative;overflow:hidden}.cover img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.cover svg{width:100%;height:100%;position:absolute;inset:0}.cover .pill{top:var(--s3);right:var(--s3);position:absolute}.event-row{padding:var(--s3) 0;align-items:flex-start;gap:14px;display:flex}.event-row+.event-row{border-top:1px solid var(--line)}.event-row:hover .event-title{text-underline-offset:3px;text-decoration:underline}.event-title{font-size:17px;font-weight:600;line-height:22px}.public-grid{column-gap:var(--s6);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=900px){.public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-grid .event-row:nth-child(2){border-top:0}}.tile-grid{gap:var(--s4) var(--s3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=760px){.tile-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.avatar{background:var(--strobe-tint);color:var(--strobe);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex;position:relative;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.avatar-stack{display:inline-flex}.avatar-stack>*+*{margin-left:-8px}.link-chip{border:1px solid var(--line-strong);border-radius:999px;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:15px;font-weight:500;display:inline-flex}.link-chip:hover{background:var(--surface-raised)}.tabs{border-bottom:1px solid var(--line);display:flex}.tabs button{min-height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;font-size:15px;font-weight:600}.tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--strobe)}.welcome{min-height:100dvh;padding:var(--s6) var(--s4) var(--s5);flex-direction:column;max-width:480px;margin:0 auto;display:flex;position:relative;overflow:hidden}.welcome-discs{pointer-events:none;width:270px;height:220px;position:absolute;top:110px;right:-70px}.welcome-discs span{border-radius:50%;width:180px;height:180px;position:absolute}.welcome-discs span:first-child{background:var(--strobe);top:0;left:0}.welcome-discs span:last-child{background:var(--sodium);top:40px;left:90px}.welcome h1{letter-spacing:-.02em;text-transform:none;font-size:128px}@media (width>=900px){.welcome{align-items:end;gap:var(--s7);max-width:1080px;padding:var(--s7) var(--s6);grid-template-columns:minmax(0,1fr) 420px;display:grid}.welcome-discs{transform-origin:0 0;top:18%;left:38%;right:auto;transform:scale(1.6)}.welcome h1{font-size:200px}}.step{gap:var(--s5);min-height:100dvh;padding:var(--s4);flex-direction:column;max-width:480px;margin:0 auto;display:flex}.step .spacer{flex:auto}.code-boxes{gap:var(--s2);grid-template-columns:repeat(6,minmax(0,1fr));display:grid;position:relative}.code-boxes input{opacity:0;width:100%;font-size:16px;position:absolute;inset:0}.code-box{border-radius:var(--r-md);background:var(--surface-raised);border:1px solid var(--line-strong);height:64px;font-family:var(--font-mono);justify-content:center;align-items:center;font-size:26px;display:flex}.code-box.active{border:2px solid var(--focus)}.code-box.active:after{content:"";background:var(--strobe);width:2px;height:28px;animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.event-page{background:var(--evt-bg);min-height:100dvh}.event-layout{max-width:1080px;margin:0 auto}.event-cover{height:320px;position:relative}.event-cover .cover{border-radius:0;position:absolute;inset:0}.event-cover-actions{left:var(--s3);right:var(--s3);top:var(--s3);z-index:2;justify-content:space-between;display:flex;position:absolute}.event-body{padding:var(--s5) var(--s4) 140px;flex-direction:column;gap:18px;display:flex}.event-info{background:var(--evt-card);border-radius:var(--r-lg);gap:var(--s3);flex-direction:column;padding:14px;display:flex}.event-info hr{border:0;border-top:1px solid var(--line);margin:0}.info-row{gap:var(--s3);align-items:flex-start;display:flex}.info-row>svg{color:var(--text-muted);flex-shrink:0;margin-top:1px}.rsvp-bar{left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));z-index:15;background:var(--evt-bg);border-top:1px solid var(--line);padding:14px var(--s4);position:fixed}.rsvp-bar-inner{align-items:center;gap:var(--s3);max-width:1080px;margin:0 auto;display:flex}.rsvp-bar .btn{min-width:160px}.event-page.no-tabbar .rsvp-bar{padding-bottom:calc(14px + env(safe-area-inset-bottom));bottom:0}@media (width>=900px){.event-layout{gap:var(--s6);padding:var(--s6) var(--s4);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.event-cover{top:calc(var(--header-h) + var(--s5));aspect-ratio:4/5;height:auto;position:sticky}.event-cover .cover{border-radius:var(--r-lg)}.event-body{padding:0 0 var(--s6)}.rsvp-bar{background:0 0;border:0;padding:0;position:static}.rsvp-bar-inner{background:var(--evt-card);border-radius:var(--r-lg);padding:var(--s4)}}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{border:1px solid var(--line-strong);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:inline-flex}.swatch[aria-pressed=true]{border:2px solid var(--text)}.swatch span{border-radius:50%;width:16px;height:16px}.swatch.custom{color:var(--text-muted);background:0 0;border-style:dashed}.cover-picker{border-radius:var(--r-lg);border:1px dashed var(--line-strong);background:var(--surface);justify-content:center;align-items:center;gap:var(--s2);height:180px;color:var(--text-muted);cursor:pointer;flex-direction:column;font-size:15px;font-weight:500;display:flex;position:relative;overflow:hidden}.cover-picker img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.cover-picker input{opacity:0;cursor:pointer;position:absolute;inset:0}.menu{position:relative}.menu-list{z-index:30;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;min-width:200px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.menu-list button{text-align:left;cursor:pointer;color:var(--text);background:0 0;border:0;border-radius:8px;padding:10px 12px;font-size:15px}.menu-list button:hover{background:var(--line)}.menu-list button.danger{color:var(--danger)}.toast{left:50%;top:calc(var(--header-h) + 12px + env(safe-area-inset-top));z-index:50;background:var(--text);color:var(--bg);border-radius:999px;padding:10px 16px;font-size:15px;font-weight:600;position:fixed;transform:translate(-50%)}.dialog-backdrop{z-index:40;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:480px;padding:var(--s5) var(--s4) calc(var(--s5) + env(safe-area-inset-bottom));gap:var(--s3);flex-direction:column;display:flex}@media (width>=760px){.dialog-backdrop{align-items:center}.dialog{border-radius:var(--r-lg)}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.demo-banner{background:var(--strobe-tint);color:var(--text);padding:8px var(--s4);gap:var(--s3);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;font-size:13px;line-height:18px;display:flex}.demo-banner button{border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:999px;padding:2px 10px;font-size:12px}
