
:root{color-scheme:dark;--bg:#10110e;--cream:#f4ead7;--gold:#c3ae80;--muted:#a8a99a;--lavender:#cfb3e9;--line:#c3ae8030;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--cream);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;background-image:radial-gradient(ellipse at 15% 8%,#b4904a0b,transparent 50%)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a:focus-visible,button:focus-visible{outline:2px solid var(--lavender);outline-offset:5px}img{display:block;max-width:100%;height:auto}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.filled{fill:currentColor;stroke:none}.sprite{position:absolute;width:0;height:0;overflow:hidden}.wrap{width:min(1120px,100%);margin:auto;padding:0 48px}.header{height:108px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px}.brand img{mix-blend-mode:screen;width:46px;height:39px;object-fit:contain}.brand-name{font:20px var(--serif);letter-spacing:.055em}.brand-name small{display:block;font:9px Arial,sans-serif;letter-spacing:.22em;color:var(--gold);margin-top:7px}.share{border:1px solid var(--line);border-radius:50%;width:44px;height:44px;display:grid;place-items:center;background:transparent}.share svg{width:18px;height:18px}.share:hover{background:#ffffff09}.layout{display:grid;grid-template-columns:1.1fr 1fr;grid-template-areas:'hero invite' 'scene invite';gap:30px 65px;padding:55px 0 42px;align-items:center}.hero{grid-area:hero}.eyebrow{color:var(--gold);font-size:9px;letter-spacing:.19em;display:flex;align-items:center;gap:11px}.eyebrow:before{content:'';width:23px;height:1px;background:var(--gold)}h1{font:400 clamp(65px,7.5vw,88px)/1.04 var(--serif);letter-spacing:-.06em;margin:24px 0}h1 em{color:var(--lavender);font-weight:400;white-space:nowrap}.description{font-size:15px;line-height:1.8;color:#bebeb0;margin:0;max-width:350px}.tags{font-size:10px;letter-spacing:.09em;color:var(--gold);margin:22px 0 0}.tags span{padding:0 10px;font-size:7px}.invite{grid-area:invite;border:1px solid #c3ae804d;border-radius:22px;background:linear-gradient(145deg,#1e1e18,#161813 70%);padding:26px 28px 23px;position:relative;box-shadow:0 20px 65px #0002}.invite:before{position:absolute;content:'';height:1px;top:-1px;left:15%;right:15%;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.ticket-head{display:flex;justify-content:space-between;align-items:center;font-size:8px;color:var(--gold);letter-spacing:.14em}.ticket-head span:first-child:before{content:'●';font-size:6px;margin-right:7px}.welcome{display:flex;align-items:center;gap:15px;margin:27px 0 23px}.welcome img{mix-blend-mode:screen;width:86px}.overline{font-size:8px;color:var(--gold);letter-spacing:.21em;margin:0 0 10px}.welcome h2{font:400 31px/1.15 var(--serif);letter-spacing:-.035em;margin:0}.welcome h2 em{font-weight:400;color:var(--lavender)}.rule{display:flex;align-items:center;gap:12px;color:var(--gold);font-size:11px;margin-bottom:25px}.rule:before,.rule:after{content:'';height:1px;background:var(--line);flex:1}.invite-copy{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 20px}.links{display:grid;gap:12px}.link{display:flex;align-items:center;gap:15px;min-height:84px;padding:18px;border:1px solid #c3ae8045;border-radius:13px;transition:background .18s,transform .18s}.link:hover{transform:translateY(-2px);background:#ffffff08}.link>svg:first-child{color:var(--gold);width:25px;height:25px}.link strong{font-size:15px;font-weight:600;display:block}.link small{font-size:11px;color:var(--muted);display:block;margin-top:7px;line-height:1.4}.link>.arrow{width:17px;height:17px;margin-left:auto;color:var(--gold)}.link.primary{background:var(--lavender);border-color:var(--lavender);color:#2a1e33;box-shadow:0 5px 28px #b98bd610}.link.primary:hover{background:#dec7f0}.link.primary svg{color:#392947}.link.primary small{color:#503d5d}.address{display:flex;align-items:center;gap:10px;min-height:56px;margin-top:17px;color:var(--gold);font-size:11px;line-height:1.6}.address svg{width:17px;height:17px}.address span small{display:block;color:var(--muted);font-size:10px}.address .arrow{margin-left:auto;width:13px}.tear{border-top:1px dashed #c3ae8045;margin:20px -28px 18px;position:relative}.tear:before,.tear:after{content:'';position:absolute;width:13px;height:13px;border-radius:50%;top:-7px;background:var(--bg);border:1px solid #c3ae8045}.tear:before{left:-7px}.tear:after{right:-7px}.footnote{font:italic 17px var(--serif);text-align:center;color:#d3c9b3;margin:0}.scene{grid-area:scene;margin:0;position:relative}.photo{position:relative;overflow:hidden;border-radius:14px;aspect-ratio:16/9;border:1px solid var(--line)}.photo img{width:100%;height:100%;object-fit:cover}.photo:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 28%,#000a)}.photo p{position:absolute;z-index:1;left:20px;bottom:17px;margin:0;font:27px/1.13 var(--serif);letter-spacing:-.03em;color:#fff0d8}.photo p em{font-weight:400}.scene figcaption{font-size:9px;color:#a09e8e;margin-top:10px;line-height:1.5}.footer{border-top:1px solid var(--line);padding:24px 0 30px;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer p{font:19px/1.4 var(--serif);margin:0;color:#cdc6b3}.footer p em{color:var(--gold)}.footer span{color:var(--gold);font-size:8px;letter-spacing:.13em;white-space:nowrap}.toast{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:14px 20px;border-radius:12px;background:var(--lavender);color:#2a1e33;font-size:13px;text-align:center;box-shadow:0 6px 30px #0006;width:max-content;max-width:calc(100% - 32px);z-index:5}.toast[hidden]{display:none}.skip{position:fixed;top:-100px;left:15px;z-index:10;background:var(--lavender);color:#21172a;padding:12px}.skip:focus{top:12px}
@media(max-width:800px){.wrap{max-width:500px;padding:0 23px}.header{height:80px}.brand-name{font-size:18px}.brand img{width:39px;height:34px}.brand-name small{font-size:8px}.layout{grid-template-columns:1fr;grid-template-areas:'hero' 'invite' 'scene';padding:29px 0 25px;gap:25px}.eyebrow{font-size:8px;letter-spacing:.13em}h1{font-size:clamp(56px,16vw,77px);margin:18px 0 17px}.description{font-size:13px;line-height:1.7;max-width:300px}.tags{margin-top:16px;font-size:9px}.invite{padding:20px 20px 19px;border-radius:18px}.ticket-head{font-size:7px;letter-spacing:.1em}.welcome{margin:20px 0 17px;gap:15px}.welcome img{width:66px}.welcome h2{font-size:28px}.overline{font-size:7px;margin-bottom:7px}.rule{margin-bottom:18px}.invite-copy{font-size:12px;margin-bottom:16px}.link{min-height:78px;padding:15px;gap:13px}.link strong{font-size:14px}.link small{font-size:11px}.address{margin-top:15px;font-size:12px}.address span small{font-size:11px}.tear{margin:17px -20px 16px}.footnote{font-size:16px}.photo p{font-size:27px}.footer{padding:22px 0 27px;align-items:flex-start}.footer p{font-size:17px}.footer span{font-size:7px;line-height:1.8}.scene figcaption{font-size:9px}}@media(max-width:350px){.wrap{padding:0 18px}.eyebrow{font-size:7px;letter-spacing:.09em}h1{font-size:16vw}.welcome h2{font-size:25px}.welcome img{width:56px}.invite{padding-left:17px;padding-right:17px}.tear{margin-left:-17px;margin-right:-17px}.link{padding:13px;gap:10px}.link strong{font-size:13px}.link small{font-size:10px}.ticket-head{font-size:6px}.footer p{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Refinements: readable labels and a shorter mobile introduction. */
.link small{font-size:12px}.scene figcaption{font-size:10px}
@media(max-width:800px){
.header{height:74px}.layout{padding-top:24px;gap:22px}
h1{font-size:clamp(52px,15.4vw,72px);margin:15px 0}
.eyebrow{font-size:9px;letter-spacing:.08em;gap:8px}
.eyebrow:before{width:17px}.brand-name small{font-size:9px}
.tags{font-size:10px;margin-top:13px}
.ticket-head{font-size:9px;letter-spacing:.04em}
.ticket-head span:last-child{display:none}
.welcome{margin:17px 0 15px}.overline{font-size:9px}
.link strong{font-size:15px}.link small{font-size:12px}
.scene figcaption{font-size:10px}.footer span{font-size:9px;letter-spacing:.06em}
}
@media(max-width:350px){.eyebrow{font-size:8px}.link strong{font-size:14px}.link small{font-size:11px}.footer span{font-size:8px}}
/* Venue first, followed by the two primary actions. */
.invite{padding:28px;border-radius:20px;background:linear-gradient(150deg,#1d1e18,#151710);box-shadow:0 16px 55px #0002}
.welcome{margin:0 0 24px;gap:19px}.welcome h2{font-size:32px}
.logo-map{display:block;flex:0 0 76px;border-radius:8px;transition:opacity .18s}.logo-map:hover,.brand:hover{opacity:.8}
.welcome img{width:100%}.overline{font-size:10px;letter-spacing:.16em;margin-bottom:9px}
.address{margin:0 0 24px;padding:16px 13px;border:1px solid #c3ae8026;border-radius:12px;gap:12px;background:#c3ae8005;min-height:76px;transition:background .18s,border-color .18s}
.address>svg:first-child{color:#d6bd8a;width:21px;height:21px}
.address strong{display:block;color:var(--cream);font-size:15px;line-height:1.4;font-weight:400;text-decoration:underline;text-decoration-color:#c3ae8066;text-underline-offset:4px}
.address span small{font-size:11px;margin-top:6px;color:var(--gold)}
.address:hover{background:#c3ae800e;border-color:#c3ae8060}.address .arrow{width:16px;height:16px}
.tear{border-top:1px solid var(--line);margin:23px 0 19px}.tear:before,.tear:after{display:none}
.footnote{font-size:16px;color:#bfb7a6}
@media(max-width:800px){
.invite{padding:22px 20px 20px}.welcome{gap:15px;margin-bottom:19px}
.logo-map{flex-basis:63px}.welcome h2{font-size:28px}.overline{font-size:9px}
.address{margin-bottom:19px;padding:14px 11px;gap:10px;min-height:74px}
.address strong{font-size:14px}.address span small{font-size:11px}
.tear{margin:20px 0 17px}.footnote{font-size:15px}
}
@media(max-width:350px){
.invite{padding:19px 16px}.logo-map{flex-basis:52px}.welcome{gap:12px}.welcome h2{font-size:25px}
.address{padding:13px 9px;gap:8px}.address strong{font-size:12px}.address span small{font-size:10px}
.address>svg:first-child{width:17px;height:17px}.address .arrow{width:13px}.footnote{font-size:14px}
}

/* October meeting: date, venue, then community links. */
.invite .welcome{margin-bottom:23px}
.event-date{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 0 22px;margin-bottom:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-variant-numeric:lining-nums tabular-nums}
.event-date time{display:block;font:400 clamp(27px,3vw,35px)/1.15 var(--serif);letter-spacing:-.03em;white-space:nowrap;color:var(--cream)}
.event-date .event-start time{color:var(--lavender)}
.event-date span{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:8px}
.event-start{text-align:right}
.organizer{display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;font-size:12px;color:var(--gold);text-decoration:underline;text-underline-offset:4px;text-decoration-color:#c3ae8066}
.organizer svg{width:14px;height:14px}
.organizer:hover{color:var(--cream)}
.invite .tear{margin-top:12px}
::selection{background:var(--lavender);color:#2a1e33}
@media(max-width:800px){.invite .welcome{margin-bottom:19px}.event-date{padding:17px 0 19px;margin-bottom:18px;gap:12px}.event-date time{font-size:clamp(25px,7vw,31px)}.event-date span{font-size:11px;margin-top:6px}}
@media(max-width:350px){.event-date time{font-size:24px}.event-date span{font-size:11px}}

/* Bilingual header and programme, within the existing invitation system. */
.header-actions{display:flex;align-items:center;gap:18px}
.languages{display:flex;align-items:center;gap:2px;font-size:12px}
.languages a{display:grid;place-items:center;min-width:44px;min-height:44px;color:var(--muted);border-bottom:1px solid transparent}
.languages a[aria-current="page"]{color:var(--cream);border-bottom-color:var(--lavender)}
.languages a:hover{color:var(--lavender)}
.programme-jump{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);color:var(--gold);font-size:13px;text-decoration:none}
.programme-jump svg{width:16px;height:16px;transform:rotate(90deg)}
.programme-jump:hover{color:var(--cream)}
.programme{grid-area:programme;scroll-margin-top:28px;border-top:1px solid var(--line);margin-top:26px;padding-top:54px;display:grid;grid-template-columns:1fr 1.8fr;gap:64px;align-items:start}
.programme h2{font:400 clamp(34px,4vw,47px)/1.12 var(--serif);letter-spacing:-.03em;margin:0 0 20px;text-wrap:balance}
.programme-intro>p{font-size:14px;line-height:1.75;color:var(--muted);margin:0 0 17px;max-width:32ch}
.programme-range{color:var(--cream)!important;font-size:16px!important;font-variant-numeric:tabular-nums}
.programme-list{list-style:none;margin:0;padding:0;min-width:0}
.programme-list li{display:grid;grid-template-columns:88px minmax(0,1fr);gap:24px;padding:23px 0;border-top:1px solid var(--line)}
.programme-list li:first-child{padding-top:0;border-top:0}
.programme-list li:last-child{padding-bottom:0}
.programme-time{font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.programme-time time{display:block;font:24px/1.2 var(--serif);color:var(--gold)}
.programme-time span{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-top:6px}
.programme-list h3{font:400 23px/1.25 var(--serif);margin:0 0 8px;letter-spacing:-.015em;text-wrap:balance}
.programme-list p{font-size:14px;line-height:1.7;color:var(--muted);margin:0;max-width:60ch}
.programme-list .music h3{color:var(--lavender)}
.open-mic{display:block;min-height:44px;margin-top:10px;padding:12px 0 6px;font-size:13px;color:var(--gold);text-decoration:underline;text-underline-offset:4px}
.open-mic:hover{color:var(--cream)}
.layout{grid-template-areas:'hero invite' 'scene invite' 'programme programme'}
html[lang="en"] h1{font-size:clamp(56px,6.4vw,78px);letter-spacing:-.04em}
html[lang="en"] h1 em{white-space:normal}
html[lang="en"] .welcome h2{font-size:30px}
html[lang="en"] .description{max-width:37ch}
@media(max-width:800px){
.header-actions{gap:10px}.languages a{min-width:44px}.brand{gap:9px}.brand-name{font-size:17px}
.layout{grid-template-areas:'hero' 'invite' 'scene' 'programme'}
.programme{grid-template-columns:1fr;gap:28px;padding-top:34px;margin-top:16px}
.programme h2{font-size:36px;margin-bottom:16px}
.programme-intro>p{max-width:45ch}.programme-intro>p:last-child{margin-bottom:0}
.programme-list li{grid-template-columns:66px minmax(0,1fr);gap:19px;padding:22px 0}
.programme-time time{font-size:23px}.programme-time span{font-size:11px}
.programme-list h3{font-size:23px}.programme-list p{font-size:14px}
html[lang="en"] h1{font-size:clamp(48px,13.3vw,65px)}
html[lang="en"] .welcome h2{font-size:27px}
}
@media(max-width:350px){
.header-actions{gap:5px}.languages a{min-width:44px}.brand img{width:31px}.brand-name{font-size:15px}.brand-name small{font-size:8px}.brand{gap:6px}.share{width:44px;height:44px}
.programme h2{font-size:32px}.programme-list li{grid-template-columns:59px minmax(0,1fr);gap:14px}.programme-list h3{font-size:21px}.programme-time time{font-size:22px}
html[lang="en"] .welcome h2{font-size:23px}
}

/* Single-line event title; Telegram is the primary community action. */
@font-face{font-family:Neucha;src:url('/loft/assets/neucha-title.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
.welcome{gap:16px;container-type:inline-size}.welcome .logo-map{flex-basis:52px}
.welcome h2,html[lang="en"] .welcome h2{font-family:Neucha,Georgia,serif;font-size:clamp(20px,8.5cqi,34px);line-height:1.2;white-space:nowrap;letter-spacing:0;font-synthesis:none}
.welcome h2 em{font-style:normal}
@media(max-width:800px){.welcome{gap:12px}.welcome .logo-map{flex-basis:44px}.welcome h2,html[lang="en"] .welcome h2{font-size:clamp(20px,9.5cqi,29px)}}
@media(max-width:350px){.welcome{gap:10px}.welcome .logo-map{flex-basis:36px}}

/* Painted kirtan instruments and hospitality still life, with native alpha. */
.programme-art{display:block;width:100%;max-width:340px;height:auto;margin:26px 0 0;pointer-events:none}
.programme-list .food .programme-copy{display:flow-root}
.programme-food-art{float:right;width:168px;height:auto;margin:12px 0 2px 18px;pointer-events:none}
@media(max-width:800px){
.programme-intro{position:relative}
.programme-art{width:220px;margin:14px auto 0}
.programme-list .food .programme-copy{display:flex;flex-direction:column}
.programme-food-art{float:none;order:1;width:180px;margin:18px 0 0 auto}
}
@media(min-width:540px) and (max-width:800px){
.programme-intro{display:grid;grid-template-columns:minmax(0,1fr) 190px;column-gap:24px}
.programme-intro>h2,.programme-intro>p{grid-column:1}
.programme-art{grid-column:2;grid-row:1 / 4;align-self:center;width:100%;margin:0}
}
