:root{--cream: #feeabd;--burgundy: #722b29;--stone: #a69c96;--coral: #da9780;--teal: #1f6f7e;--ocean: #8fb8c8;--sage: #8d9b84;--gold: #d9a441;--rose: #f2c8bf;--paper: #fff7e8;--ink: #321917;--muted: rgba(50, 25, 23, .64);--line: rgba(114, 43, 41, .15);--shadow: 0 28px 90px rgba(62, 28, 24, .24);--soft-shadow: 0 14px 38px rgba(114, 43, 41, .12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:#b9c7bf}body:before,body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}body:before{z-index:0;background:linear-gradient(180deg,#fff7e81f,#feeabd8a),radial-gradient(circle at 16% 8%,rgba(218,151,128,.36),transparent 21rem),radial-gradient(circle at 84% 12%,rgba(31,111,126,.22),transparent 25rem),url(/images/sf-city-background.jpg) center center / cover no-repeat,linear-gradient(150deg,#8fb8c8,#fff7e8 44%,#feeabd);filter:saturate(.86) contrast(.96)}body:after{z-index:0;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:linear-gradient(90deg,#722b2933,#fff7e829 38%,#1f6f7e2e),linear-gradient(180deg,#fff7e894,#fff7e838 44%,#722b2938)}button,a,input{font:inherit}a{color:inherit}button{cursor:pointer}.app-shell,.gate-shell{position:relative;z-index:1;min-height:100vh;padding:clamp(0rem,2vw,2rem)}.gate-shell{display:grid;place-items:center}.paper,.gate-card{width:min(100%,500px);margin:0 auto;border:1px solid rgba(255,247,232,.62);background:linear-gradient(180deg,#fff7e8eb,#fff7e8db),#fff7e8db;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.paper{min-height:100vh;overflow:hidden}.gate-card{padding:clamp(1.45rem,7vw,2.4rem);border-radius:2rem;text-align:center;position:relative}.gate-card:before,.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 18% 8%,rgba(217,164,65,.22),transparent 15rem),radial-gradient(circle at 86% 16%,rgba(143,184,200,.32),transparent 17rem)}.lock-badge{width:3.4rem;height:3.4rem;margin:0 auto 1rem;border-radius:999px;background:var(--burgundy);color:var(--cream);display:grid;place-items:center;box-shadow:0 10px 24px #722b293d;position:relative}.eyebrow,.corner-label,.route-strip,.event-time,.time-pill,.password-form label{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:800}.eyebrow{margin:0 0 .55rem;color:var(--burgundy)}.gate-card h1,.hero h1,.section-header h2,.calendar-cta h2,.day-heading h3:first-of-type,.hero-card strong{font-family:Georgia,Times New Roman,serif;color:var(--burgundy);letter-spacing:0}.gate-card h1{position:relative;margin:0 0 1rem;font-size:clamp(2.2rem,12vw,3.6rem);line-height:.94}.gate-copy,.hero-copy,.section-header p:not(.eyebrow),.calendar-cta p,.event-card p,.location-card p,.food-card li,.note-card p,.faq-grid p,.warm-card p,.day-heading p,.event-body p,.highlight-card p:not(.eyebrow){color:var(--muted);line-height:1.55}.gate-copy{position:relative;margin:0 auto 1.5rem;font-size:1rem}.password-form{position:relative;text-align:left}.password-form label{display:block;margin-bottom:.45rem;color:var(--burgundy)}.password-form input{width:100%;border:1px solid rgba(114,43,41,.22);border-radius:999px;padding:.95rem 1rem;background:#fffffae0;color:var(--ink);outline:none}.password-form input:focus{border-color:var(--burgundy);box-shadow:0 0 0 4px #da978047}.password-form button,.primary-button,.secondary-button,.footer button{min-height:2.8rem;border:0;border-radius:999px;padding:.75rem 1rem;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-weight:800;text-decoration:none}.password-form button,.primary-button{background:linear-gradient(135deg,var(--burgundy),#963b35);color:var(--cream);box-shadow:0 12px 26px #722b293d}.password-form button{width:100%;margin-top:1rem}.secondary-button,.footer button{background:#fff7e8b8;color:var(--burgundy);border:1px solid var(--line)}.error-text{color:var(--burgundy);font-weight:800;margin:.7rem 0 0}.top-nav{position:sticky;top:0;z-index:20;display:flex;gap:.4rem;padding:.7rem;overflow-x:auto;background:#fff7e8cc;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.top-nav a{flex:1 0 auto;min-width:max-content;text-align:center;text-decoration:none;color:var(--burgundy);font-weight:850;border:1px solid rgba(114,43,41,.12);border-radius:999px;padding:.58rem .76rem;background:#fffffa7a}.top-nav a:hover{background:#f2c8bf85}.hero{position:relative;padding:clamp(1.3rem,7vw,2.6rem) clamp(1.1rem,6vw,2.2rem) 1.35rem;background:linear-gradient(180deg,#fff7e86b,#fff7e800),#feeabd42;border-bottom:1px solid var(--line)}.hero-topline{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:1.2rem}.status-chip{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.42rem .65rem;background:#f2c8bfa3;color:var(--burgundy);font-size:.72rem;font-weight:850;white-space:nowrap}.hero h1{position:relative;margin:0;font-size:clamp(3.25rem,17vw,5.4rem);line-height:.86}.hero h1 span{display:block}.hero-date{position:relative;margin:1rem 0 0;color:var(--teal);font-weight:900}.hero-copy{position:relative;margin:.75rem 0 1.25rem;font-size:1.02rem}.route-strip{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem;margin:1rem 0;color:var(--burgundy)}.route-strip span{border:1px solid rgba(114,43,41,.16);border-radius:999px;padding:.52rem .35rem;text-align:center;background:#fff7e8ad}.content-shell{display:grid;gap:1rem;padding:1rem}.panel,.calendar-cta,.footer{border:1px solid var(--line);border-radius:1.35rem;background:#fff7e8b8;box-shadow:var(--soft-shadow);scroll-margin-top:5rem}.panel{padding:clamp(1rem,5vw,1.45rem)}.section-header{margin-bottom:1.1rem}.section-header h2,.calendar-cta h2{margin:0;font-size:clamp(2rem,10vw,3.1rem);line-height:.96}.section-header p:not(.eyebrow),.calendar-cta p{margin:.65rem 0 0}.today-panel{border-color:#d9a441b8;background:linear-gradient(135deg,#d9a44133,#f2c8bf3d),#fff7e8db}.mini-timeline{position:relative;display:grid;gap:.75rem}.mini-timeline:before{content:"";position:absolute;left:6.6rem;top:.8rem;bottom:.8rem;width:2px;background:linear-gradient(var(--coral),var(--teal));opacity:.35}.mini-event{position:relative;display:grid;grid-template-columns:5.6rem .9rem 1fr;gap:.55rem;align-items:start}.mini-dot,.event-dot,.day-dot{display:block;border-radius:999px;background:var(--coral);box-shadow:0 0 0 5px #da97802e}.mini-dot{width:.62rem;height:.62rem;margin-top:.55rem;z-index:1}.mini-event h3,.event-card h3,.location-card h3,.food-card h3,.note-card h3,.faq-grid h3,.warm-card h3,.highlight-card h3{margin:0;color:var(--burgundy);line-height:1.15}.mini-event p,.event-card p,.location-card p,.note-card p,.faq-grid p,.warm-card p,.highlight-card p{margin:.35rem 0 0}.time-pill,.event-time{align-self:start;width:fit-content;min-width:max-content;min-height:1.85rem;border:1px solid rgba(114,43,41,.12);border-radius:999px;padding:.38rem .5rem;color:var(--burgundy);background:#fff7e8d1;white-space:nowrap;line-height:1;display:inline-flex;align-items:center;justify-content:center}.time-pill{gap:.24rem;font-size:.62rem}.muted{color:#3219177a!important}.highlight-grid,.location-grid,.food-grid,.faq-grid{display:grid;grid-template-columns:1fr;gap:.75rem}.highlight-card,.event-card,.location-card,.food-card,.faq-grid article,.note-card,.day-card,.warm-card{border:1px solid rgba(114,43,41,.12);border-radius:1.1rem;background:#fffdf6b3}.highlight-card{padding:1rem;border-left-width:.42rem}.highlight-card svg{margin-bottom:.8rem}.accent-teal{border-left-color:var(--teal)}.accent-blue{border-left-color:var(--ocean)}.accent-red{border-left-color:var(--burgundy)}.accent-gold{border-left-color:var(--gold)}.accent-teal svg{color:var(--teal)}.accent-blue svg{color:var(--ocean)}.accent-red svg{color:var(--burgundy)}.accent-gold svg{color:var(--gold)}.day-stack{display:grid;gap:1rem}.day-card{padding:1rem;overflow:hidden}.day-heading{display:grid;grid-template-columns:1rem minmax(0,.72fr) minmax(0,1fr);gap:.7rem;align-items:start;padding-bottom:.9rem;border-bottom:1px solid rgba(114,43,41,.12)}.day-dot{width:.86rem;height:.86rem;margin-top:.15rem}.day-heading h3{margin:0}.day-heading h3:first-of-type{font-size:1.65rem;line-height:.95}.day-heading div:last-child h3{font-size:.98rem}.day-heading p{margin:.35rem 0 0;font-size:.92rem}.day-color-0 .day-dot,.day-color-0 .event-dot{background:var(--burgundy)}.day-color-1 .day-dot,.day-color-1 .event-dot{background:var(--teal)}.day-color-2 .day-dot,.day-color-2 .event-dot{background:var(--coral)}.day-color-3 .day-dot,.day-color-3 .event-dot{background:var(--gold)}.day-color-4 .day-dot,.day-color-4 .event-dot{background:var(--sage)}.day-color-5 .day-dot,.day-color-5 .event-dot{background:var(--ocean)}.event-list{position:relative;display:grid}.event-list:before{content:"";position:absolute;left:6.6rem;top:1rem;bottom:1rem;width:2px;background:#722b2921}.event-row{position:relative;display:grid;grid-template-columns:5.6rem .9rem 1fr;gap:.55rem;align-items:start;padding:.9rem 0;border-bottom:1px solid rgba(114,43,41,.08)}.event-row:last-child{border-bottom:0}.event-dot{width:.52rem;height:.52rem;margin:.42rem auto 0;z-index:1}.event-row.featured .event-body{border-left:3px solid var(--coral);padding-left:.65rem}.event-row.featured h4{color:var(--burgundy)}.event-row.transit h4{color:#3219179e;font-style:italic}.event-body h4{margin:0;font-size:1rem;color:var(--ink)}.event-meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.35rem;color:#32191780;font-size:.88rem;font-weight:700}.hero-card a,.warm-card a,.location-card a,.inline-link,.event-meta a{display:inline-flex;align-items:center;gap:.3rem;width:fit-content;border-radius:999px;padding:.32rem .55rem;background:#feeabdb8;color:var(--burgundy);text-decoration:none;font-size:.82rem;font-weight:850}.place-groups{display:grid;gap:1rem}.place-group>.eyebrow{color:var(--teal)}.location-card,.food-card,.faq-grid article{position:relative;padding:1rem}.location-card{overflow:hidden;border-top:4px solid var(--teal)}.location-card:nth-child(2n){border-top-color:var(--coral)}.location-card:nth-child(3n){border-top-color:var(--gold)}.corner-label{position:absolute;top:.72rem;right:.75rem;color:#722b2966;font-size:.6rem}.location-card svg,.food-card svg,.note-card svg,.warm-card svg{color:var(--coral)}.location-card h3{padding-right:4rem;margin-top:.75rem}.location-card a{margin-top:.65rem}.calendar-cta{display:grid;gap:1rem;padding:1.2rem;background:linear-gradient(135deg,#1f6f7e29,#d9a4413d),#fff7e8d1}.split-panel{display:grid;gap:1rem}.note-stack{display:grid;gap:.75rem}.note-card{display:grid;grid-template-columns:auto 1fr;gap:.75rem;padding:1rem}.warm-card{padding:1rem;background:#f2c8bf57}.warm-card strong{color:var(--burgundy);line-height:1.4}.food-card ul{margin:.75rem 0 0;padding-left:1.1rem}.food-card li+li{margin-top:.4rem}.contact-strip{margin-top:.9rem;display:grid;gap:.7rem}.contact-strip div{border-radius:.95rem;background:#8fb8c838;padding:.9rem}.contact-strip strong,.contact-strip span{display:block}.contact-strip strong{color:var(--burgundy);margin-bottom:.25rem}.footer{margin:0 1rem 1rem;padding:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.footer div{display:flex;align-items:center;gap:.55rem;color:var(--burgundy);font-weight:800}@media(min-width:540px){.paper{margin-block:1.5rem;border-radius:2rem;min-height:auto}.highlight-grid,.location-grid,.food-grid,.faq-grid,.contact-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:760px){.paper{width:min(100% - 3rem,520px)}}@media(max-width:420px){.app-shell{padding:0}.paper{border-left:0;border-right:0}.hero-topline{align-items:flex-start;flex-direction:column;gap:.35rem}.route-strip{grid-template-columns:repeat(2,1fr)}.day-heading{grid-template-columns:1rem 1fr}.day-heading div:last-child{grid-column:2}.mini-event,.event-row{grid-template-columns:5.25rem .85rem 1fr}.mini-timeline:before,.event-list:before{left:6.22rem}.footer{align-items:flex-start;flex-direction:column}}
