.events-page { background:radial-gradient(ellipse at 92% 17%,#241b453b,transparent 42%),#0c0d18; }
.events-page .page-shell { max-width:1540px; }
.events-page button,.events-page select,.events-page input { font:inherit; }
.events-page button { cursor:pointer; }
.events-page button:hover { filter:none; }
.events-page :focus-visible { outline:2px solid #bcf99a; outline-offset:4px; }
.events-page [hidden] { display:none !important; }
.events-topbar { gap:30px; min-height:84px; }
.events-nav { display:flex; align-items:center; gap:24px; margin-left:auto; }
.events-nav a { color:#989eba; text-decoration:none; font-size:.78rem; font-weight:650; padding:12px 0; }
.events-nav a:hover { color:#eef1ff; }
.events-nav a[aria-current] { color:#b0f48c; border-bottom:2px solid #b0f48c; }
.events-topbar .region-lock { font-size:.62rem; padding:7px 10px; color:#b6bdce; border-color:#373e52; }
.events-skip { position:absolute; z-index:100; left:20px; top:-100px; padding:10px 15px; background:#b0f48c; color:#101515; }
.events-skip:focus { top:15px; }
.events-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; padding:60px 0 36px; }
.events-eyebrow { margin:0 0 14px; color:#a5adbc; font-size:.64rem; letter-spacing:.18em; font-weight:750; }
.events-heading .events-eyebrow { color:#b7e2a0; display:flex; align-items:center; gap:9px; }
.events-heading .events-eyebrow span { width:6px; height:6px; border-radius:50%; background:#b0f48c; box-shadow:0 0 10px #b0f48c66; }
.events-heading h1 { margin:0; font-family:Georgia,serif; font-weight:400; font-size:clamp(2.7rem,4.7vw,4.6rem); line-height:1.06; letter-spacing:-.05em; }
.events-heading h1 em { color:#b7ec9f; font-weight:400; }
.events-intro { max-width:440px; margin:17px 0 0; color:#a9aec2; font-size:.86rem; line-height:1.75; }
.events-clock { display:grid; gap:9px; padding-bottom:6px; text-align:right; }
.events-clock > span { color:#7c849b; font-size:.58rem; letter-spacing:.15em; font-weight:750; }
.events-clock strong { font-size:.86rem; font-weight:600; color:#d9dde8; }
.events-clock small { font-size:.68rem; color:#858da5; }
.featured-event { position:relative; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr); overflow:hidden; border:1px solid #6381526b; border-radius:17px; background:linear-gradient(110deg,#1d2d25,#1b2630 56%,#221f37); }
.featured-copy { position:relative; z-index:2; padding:35px 38px; }
.feature-meta { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.feature-meta > span:not(.event-status) { color:#bfc9bb; font-size:.59rem; font-weight:700; letter-spacing:.13em; }
.featured-copy h2 { font:400 clamp(1.7rem,3vw,2.65rem)/1.1 Georgia,serif; letter-spacing:-.025em; margin:0; max-width:520px; }
.featured-copy > p { max-width:420px; color:#b3bdba; font-size:.82rem; line-height:1.7; margin:13px 0 19px; }
.feature-bottom { display:flex; align-items:center; flex-wrap:wrap; gap:16px; }
.feature-bottom button { border:0; border-radius:7px; background:#b5ed94; color:#162015; padding:12px 18px; font-size:.74rem; font-weight:800; }
.feature-bottom button:hover { background:#cffab6; }
.feature-bottom span { font-size:.71rem; color:#adbca9; }
.feature-art { position:relative; display:grid; place-items:center; min-height:250px; overflow:hidden; background:radial-gradient(circle,#accb8233,transparent 64%); }
.feature-art::before,.feature-art::after { content:""; position:absolute; width:260px; height:260px; border-radius:50%; border:1px solid #b7ec9f21; transform:rotate(-25deg) scaleY(.7); }
.feature-art::after { width:350px; height:350px; transform:rotate(30deg) scaleY(.8); border-style:dashed; }
.garden-die { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; width:108px; height:108px; padding:20px; border:1px solid #e3f3c788; border-radius:24px; background:linear-gradient(140deg,#d9f0b3,#a2c989 55%,#738960); box-shadow:10px 13px 0 #253c27,0 23px 70px #a9cf7b26,inset 0 2px 2px #ffffffbb; transform:rotate(-19deg); }
.garden-die i { width:12px; height:12px; border-radius:50%; background:#355939; box-shadow:inset 0 2px 2px #19321f; }
.garden-die i:nth-child(2),.garden-die i:nth-child(4),.garden-die i:nth-child(6),.garden-die i:nth-child(8) { visibility:hidden; }
.art-star { position:absolute; color:#b5ea98; font-size:25px; }
.art-star.one { top:22%; left:22%; }.art-star.two { bottom:22%; right:23%; font-size:15px; }.art-star.three { top:24%; right:20%; font-size:12px; }
.art-caption { position:absolute; right:23px; bottom:22px; color:#b4c5a480; font-size:.54rem; letter-spacing:.23em; }
.events-overview { display:grid; grid-template-columns:repeat(4,1fr); padding:25px 0; margin:0 0 22px; border-bottom:1px solid #2a2e40; }
.events-overview > div { display:grid; grid-template-columns:24px auto 1fr; align-items:center; gap:10px; padding:3px 23px; border-right:1px solid #2a2e40; }
.events-overview > div:first-child { padding-left:0; }.events-overview > div:last-child { border:0; }
.overview-icon { color:#9bb08a; font-size:1.15rem; }.events-overview strong { color:#eef3e9; font-size:1.7rem; letter-spacing:-.06em; font-weight:500; }.events-overview div > span:last-child { color:#a5acc0; font-size:.69rem; }
.events-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:21px; }
.events-section-heading .events-eyebrow { margin-bottom:7px; color:#7b8297; font-size:.57rem; }
.events-section-heading h2 { margin:0; font:400 1.65rem/1.2 Georgia,serif; letter-spacing:-.025em; }
.events-section-heading > span { color:#7f879c; font-size:.7rem; }
.weekend-section { margin:30px 0 43px; }
.sunday-rail { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
.sunday-slot { display:flex; flex-direction:column; align-items:flex-start; text-align:left; gap:7px; padding:17px 14px; border:1px solid #333248; border-radius:10px; background:#131522; color:#e0e2ee; min-height:143px; transition:border-color .15s,transform .15s; }
.sunday-slot:hover { border-color:#98b378; transform:translateY(-2px); }
.sunday-slot:first-child { border-color:#899a566e; background:linear-gradient(135deg,#24291c,#171923); }
.sunday-slot time { color:#b7c899; font-size:.71rem; font-weight:750; }
.sunday-slot strong { font-size:.8rem; line-height:1.35; font-weight:650; }
.sunday-slot > span { color:#919bb2; font-size:.65rem; line-height:1.45; }
.sunday-slot small { margin-top:auto; color:#aaa69a; font-size:.55rem; text-transform:uppercase; letter-spacing:.08em; }
.event-browser { margin-bottom:65px; scroll-margin-top:106px; }
.view-controls { display:flex; border:1px solid #33354a; border-radius:8px; padding:3px; background:#11131d; }
.view-controls button { padding:8px 13px; border:0; border-radius:5px; background:transparent; color:#7c849d; font-size:.68rem; }
.view-controls button[aria-pressed="true"] { color:#e3e8e0; background:#292d3c; }
.status-filters { display:flex; flex-wrap:wrap; gap:5px; border-bottom:1px solid #2c3043; padding-bottom:13px; margin-bottom:18px; }
.status-filters button { padding:9px 14px; border:1px solid transparent; border-radius:7px; background:transparent; color:#9a9fb8; font-size:.74rem; font-weight:650; }
.status-filters button[aria-pressed="true"] { color:#bcf1a0; background:#203023; border-color:#56784662; }
.status-filters button:hover { color:#eef2e9; background:#ffffff08; }
.event-toolbar { display:flex; gap:10px; align-items:center; }
.event-search { display:flex; align-items:center; flex:1; min-width:200px; gap:11px; border:1px solid #33364b; border-radius:8px; background:#131522; padding:0 14px; }
.event-search > span { color:#b2b8c8; font-size:1.35rem; }
.event-search input { border:0; border-radius:0; background:transparent; width:100%; min-width:0; padding:12px 0; color:#e0e5ee; font-size:.75rem; outline-offset:0; }
.event-search input::placeholder { color:#717a95; }
.event-toolbar select { max-width:180px; padding:12px 11px; color:#b8bfd0; font-size:.69rem; background:#151724; border:1px solid #33364b; border-radius:8px; }
.result-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; margin:18px 0; }
.result-heading p { color:#848da4; font-size:.68rem; margin:0; }
.result-heading > div { display:flex; gap:12px; }
.result-heading button { padding:4px 0; border:0; background:none; color:#a1bb8e; font-size:.68rem; }
.schedule-warning { padding:12px 15px; color:#e3c899; border:1px solid #9e744c55; border-radius:8px; background:#31251c44; font-size:.73rem; line-height:1.6; }
.event-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.event-card { --event-accent:#b0bbfa; position:relative; display:flex; flex-direction:column; overflow:hidden; border:1px solid #34374b; border-radius:12px; background:linear-gradient(155deg,#191c2c,#11131f); transition:border-color .15s; }
.event-card:hover { border-color:#62657d; }
.card-art { position:relative; display:flex; align-items:center; justify-content:space-between; gap:10px; height:98px; padding:20px; overflow:hidden; border-bottom:1px solid #ffffff09; background:radial-gradient(ellipse at 82% 110%,var(--art-glow,#6a638b55),transparent 68%),linear-gradient(110deg,#252640,#171e2d); }
.card-art::before { content:""; position:absolute; width:115px; height:115px; right:25px; top:18px; border:1px solid var(--event-accent); border-radius:50%; opacity:.13; }
.card-art::after { content:""; position:absolute; width:165px; height:165px; right:0; top:-7px; border:1px solid var(--event-accent); border-radius:50%; opacity:.08; }
.card-symbol { position:relative; z-index:1; font:400 2.2rem/1 Georgia,serif; color:var(--event-accent); text-shadow:0 0 25px var(--art-glow); }
.card-art > span:last-child { align-self:flex-end; font-size:.55rem; letter-spacing:.13em; font-weight:700; color:var(--event-accent); opacity:.8; }
.event-card[data-theme="garden"],.event-card[data-theme="island"] { --event-accent:#b5ed94; --art-glow:#78915e66; }
.event-card[data-theme="magic"] { --event-accent:#bfb0ee; --art-glow:#8a62cb66; }
.event-card[data-theme="sunday"] { --event-accent:#f0ce8f; --art-glow:#986c3b77; }
.event-card[data-theme="community"] { --event-accent:#98d6de; --art-glow:#39718766; }
.event-card[data-theme="halloween"],.event-card[data-theme="bloodmoon"] { --event-accent:#eca592; --art-glow:#994a4166; }
.event-card[data-theme="countdown"] { --event-accent:#a6bcea; --art-glow:#4565a366; }
.event-card[data-theme="shop"] { --event-accent:#d1b5da; --art-glow:#8b539666; }
.event-card[data-theme="urgent"] { --event-accent:#f0c986; --art-glow:#8f603d66; }
.card-copy { display:flex; flex:1; flex-direction:column; padding:20px 21px 17px; }
.card-topline { display:flex; justify-content:space-between; align-items:center; gap:6px; margin-bottom:12px; }
.event-status { display:inline-flex; align-items:center; gap:6px; padding:5px 8px; border-radius:4px; background:#26483077; color:#b7e89e; font-size:.56rem; font-weight:750; letter-spacing:.045em; }
.event-status::before { content:""; width:4px; height:4px; border-radius:50%; background:currentColor; }
.event-status.upcoming { color:#a9bae3; background:#303d6655; }.event-status.urgent { color:#edc486; background:#64472755; }.event-status.ended { color:#a7abc0; background:#36384977; }.event-status.boundary { color:#edc486; background:#64472755; }
.source-tag { color:#6f7890; font-size:.52rem; letter-spacing:.08em; text-transform:uppercase; }
.card-copy h3 { margin:0 0 9px; color:#edf0f4; font-size:1rem; font-weight:600; line-height:1.35; letter-spacing:-.025em; }
.card-copy > p { margin:0 0 16px; min-height:38px; color:#959eb5; font-size:.74rem; line-height:1.6; }
.card-dates { display:flex; align-items:center; gap:7px; color:#c0c6d3; font-size:.65rem; }
.card-dates span { color:#7f899e; }.card-timing { margin:6px 0 0; color:#aa9070; font-size:.59rem; }
.card-tags { display:flex; flex-wrap:wrap; gap:5px; margin:13px 0 0; }
.card-tags span { padding:4px 7px; border:1px solid #36394c; border-radius:4px; color:#9da7bc; font-size:.54rem; }
.card-tags .paid-tag { border-color:#8a6a5566; color:#c6a18a; }
.card-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:17px; margin-top:auto; }
.card-actions > button:first-child { padding:0; background:none; border:0; color:var(--event-accent); font-size:.67rem; font-weight:700; }
.save-event { display:grid; place-items:center; flex:0 0 auto; width:30px; height:30px; padding:0; min-height:30px; line-height:1; border:1px solid #3a4052; border-radius:7px; background:#11151f; color:#8d97af; font-size:1.1rem; }
.save-event[aria-pressed="true"] { color:#e8d9a0; border-color:#a1956155; background:#36312055; }
.events-empty { padding:55px 20px; text-align:center; border:1px dashed #363b50; border-radius:12px; }.events-empty > span { color:#9aa888; font-size:2rem; }.events-empty h3 { font:400 1.4rem Georgia,serif; margin:14px 0 10px; }.events-empty p { color:#8f9ab1; font-size:.79rem; }.events-empty button { background:none; padding:10px 15px; border:1px solid #63795577; color:#bed6ad; border-radius:6px; font-size:.73rem; }
.calendar-panel { padding:22px; margin-bottom:20px; border:1px solid #33384d; border-radius:12px; background:#121521; }
.calendar-heading { display:flex; gap:14px; align-items:center; margin-bottom:23px; }.calendar-heading h3 { margin:0; font:400 1.3rem Georgia,serif; }.calendar-heading button { border:1px solid #394056; border-radius:5px; padding:6px 10px; background:#202536; color:#b8c0d0; font-size:.7rem; }.calendar-heading button:last-child { margin-left:auto; }
.calendar-weekdays,.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }.calendar-weekdays span { padding:0 8px 10px; font-size:.6rem; color:#7d87a1; }.calendar-grid { gap:5px; }
.calendar-day { display:flex; flex-direction:column; gap:5px; min-height:112px; border:1px solid #2d3346; border-radius:6px; background:#181b28; color:#b9c0d5; padding:9px; text-align:left; overflow:hidden; }.calendar-day > strong { font-size:.7rem; font-weight:500; }.calendar-day.today { border-color:#71895f; background:#253027; }.calendar-day.selected { box-shadow:inset 0 0 0 2px #a8cf8e; }.calendar-day.outside { opacity:.4; }.calendar-day:hover { border-color:#727e68; }.calendar-day small { display:block; width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.53rem; border-left:2px solid #b4c098; padding-left:5px; color:#9fadc0; }.calendar-day > span { margin-top:auto; font-size:.52rem; color:#707d95; }.calendar-hint { font-size:.64rem; color:#808da3; margin-bottom:0; }.selected-day { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; color:#b9c9aa; font-size:.77rem; }.selected-day button { background:none; border:0; color:#9eb188; font-size:.7rem; }
#event-dialog { width:min(660px,calc(100vw - 32px)); max-height:calc(100dvh - 48px); padding:34px; border:1px solid #656378; border-radius:17px; background:linear-gradient(140deg,#212536,#131621); color:#e5e8f0; box-shadow:0 30px 110px #000a; }
#event-dialog::backdrop { background:#04070bd4; backdrop-filter:blur(8px); }
.close-detail { position:absolute; right:14px; top:12px; width:33px; height:33px; padding:0; border:1px solid #4c5165; border-radius:50%; background:#181c28; color:#d0d6e5; font-size:1.3rem; }
.detail-label { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:18px; padding-right:18px; }.detail-label > span:last-child { font-size:.6rem; color:#9babc0; }
#detail-title { margin:0; padding-right:10px; font:400 2rem/1.2 Georgia,serif; letter-spacing:-.025em; }.detail-intro { font-size:.83rem; line-height:1.7; color:#b5bdd0; }
.detail-facts { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:22px 0; }.detail-facts > div { background:#131824; border:1px solid #363f51; border-radius:8px; padding:12px; }.detail-facts dt { color:#828fa8; font-size:.58rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }.detail-facts dd { margin:0; font-size:.73rem; line-height:1.55; color:#c5ccda; }
.detail-section { margin:24px 0; }.detail-section h3 { color:#c4d5b6; font-size:.8rem; font-weight:700; margin-bottom:13px; }.detail-section ol,.detail-section ul { padding-left:20px; margin:0; display:grid; gap:9px; color:#aeb8ca; font-size:.78rem; line-height:1.6; }.detail-section li::marker { color:#a5ba93; }
.detail-rewards { display:flex; flex-wrap:wrap; gap:7px; }.detail-rewards span { border:1px solid #52624c77; border-radius:5px; padding:7px 10px; background:#28382755; color:#b8d0a5; font-size:.68rem; }
.detail-source { display:flex; flex-wrap:wrap; gap:14px; padding-top:22px; border-top:1px solid #394257; }.detail-source a,.detail-source button { color:#b3d498; font-size:.72rem; border:0; background:none; padding:0; text-decoration:none; }.detail-review { color:#79879e; font-size:.62rem; margin-top:15px; line-height:1.6; }
.event-toast { position:fixed; bottom:24px; left:50%; z-index:150; max-width:calc(100vw - 32px); transform:translateX(-50%); border:1px solid #6c815e; border-radius:8px; background:#202b24; color:#c6e0b7; padding:12px 18px; box-shadow:0 12px 40px #000a; font-size:.76rem; overflow-wrap:anywhere; }
.events-footer { display:flex; justify-content:space-between; gap:24px; text-align:left; border-top:1px solid #272e41; padding:25px 0 30px; color:#73819a; font-size:.62rem; line-height:1.8; }.events-footer a { color:#a3adbd; text-decoration:none; }.events-footer > span:last-child { text-align:right; }
@media(min-width:1500px) { .event-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1000px) { .events-nav { gap:16px; }.event-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.events-overview > div { grid-template-columns:20px auto; padding:4px 16px; gap:5px 10px; }.events-overview div > span:last-child { grid-column:2; }.sunday-rail { grid-template-columns:repeat(3,minmax(0,1fr)); }.sunday-slot { min-height:120px; }.event-toolbar { flex-wrap:wrap; }.event-search { flex-basis:100%; }.event-toolbar select { flex:1; max-width:none; min-width:0; } }
@media(max-width:650px) { .events-page { --viewport-gutter:18px; }.events-topbar { flex-wrap:wrap; min-height:90px; gap:0; padding:14px 0 0; }.events-topbar .brand { font-size:1.15rem; }.events-topbar .brand-mark { width:32px; height:32px; }.events-nav { width:100%; order:3; margin-left:0; justify-content:space-between; }.events-nav a { font-size:.67rem; padding:13px 0; }.events-topbar .region-lock { margin-left:auto; font-size:.53rem; }.events-heading { display:block; padding:35px 0 25px; }.events-heading h1 { font-size:2.8rem; }.events-clock { text-align:left; gap:5px; margin-top:22px; }.events-clock > span { display:none; }.events-clock strong { font-size:.72rem; }.featured-event { grid-template-columns:1fr; }.featured-copy { padding:25px; }.featured-copy h2 { font-size:1.8rem; max-width:260px; }.featured-copy > p { max-width:270px; }.feature-art { position:absolute; right:-90px; bottom:20px; width:230px; min-height:210px; opacity:.25; pointer-events:none; }.feature-art .garden-die { width:88px; height:88px; padding:15px; gap:10px; }.feature-copy { z-index:2; }.feature-bottom { position:relative; z-index:3; }.events-overview { grid-template-columns:1fr 1fr; gap:18px 0; padding:20px 0; }.events-overview > div { grid-template-columns:20px auto 1fr; gap:7px; padding:0 10px 0 0; border:0; }.events-overview div > span:last-child { grid-column:auto; font-size:.63rem; }.events-overview strong { font-size:1.45rem; }.weekend-section { margin-bottom:32px; }.events-section-heading > span { display:none; }.sunday-rail { display:flex; overflow-x:auto; padding-bottom:8px; scroll-snap-type:x mandatory; }.sunday-slot { min-width:155px; scroll-snap-align:start; }.events-section-heading h2 { font-size:1.4rem; }.view-controls button { font-size:.58rem; padding:7px 9px; }.status-filters { gap:2px; }.status-filters button { padding:8px 9px; font-size:.64rem; }.event-toolbar { gap:7px; }.event-toolbar select { padding:10px 6px; font-size:.6rem; }.event-search input { font-size:.72rem; }.event-grid { grid-template-columns:1fr; gap:14px; }.card-art { height:80px; }.card-copy { padding:19px; }.card-copy > p { min-height:0; }.calendar-panel { padding:13px; }.calendar-day { min-height:73px; padding:5px 3px; gap:4px; }.calendar-day > strong { font-size:.62rem; }.calendar-day small { font-size:0; height:4px; padding:0; background:#879a7077; border:0; border-radius:2px; }.calendar-day > span { font-size:.47rem; }.calendar-heading { gap:8px; }.calendar-heading h3 { font-size:1.1rem; }.calendar-weekdays span { font-size:.51rem; padding:0 3px 8px; }.calendar-grid { gap:3px; }.events-footer { display:block; }.events-footer > span { display:block; }.events-footer > span:last-child { text-align:left; margin-top:8px; }#event-dialog { padding:27px 22px; }.detail-facts { grid-template-columns:1fr; gap:8px; }#detail-title { font-size:1.8rem; } }
@media(prefers-reduced-motion:reduce) { .sunday-slot,.event-card { transition:none; } }

/* Main events are the browsing unit; individual activities live inside. */
.main-event-art { display:flex; align-items:center; gap:15px; min-height:62px; padding:17px 21px; border-bottom:1px solid #ffffff08; background:radial-gradient(ellipse at 90% 130%,var(--art-glow,#6a638b40),transparent 70%); }
.main-event-art > span { color:var(--event-accent); font:400 1.8rem Georgia,serif; }
.main-event-art small { margin-left:auto; font-size:.56rem; text-align:right; color:var(--event-accent); opacity:.8; }
.main-event-card .card-copy > p { min-height:42px; }
.main-count { font-size:.58rem; color:#95a0b5; }
.main-milestone { margin:9px 0 0; min-height:28px; font-size:.65rem; line-height:1.5; color:#d3b386; }
.main-preview { display:flex; flex-wrap:wrap; gap:6px; margin:13px 0 0; }
.main-preview > span { border:1px solid #3a4154; border-radius:5px; padding:5px 7px; font-size:.57rem; line-height:1.3; color:#aeb8ca; }
.main-preview .more-activities { border-color:transparent; color:var(--event-accent); }
.main-event-card .card-actions { padding-top:22px; }
#event-dialog.main-event-dialog { width:min(800px,calc(100vw - 32px)); }
.group-window { font-size:.72rem; color:#aabe94; margin:19px 0 8px; }
.group-help,.group-filter-note { font-size:.7rem; line-height:1.6; color:#929fb7; }
.group-filter-note { padding:10px 12px; border:1px solid #49475c; border-radius:6px; background:#2a29383b; }
.group-sections { margin:28px 0; }
.group-section + .group-section { margin-top:27px; }
.group-section > h3 { margin:0 0 12px; color:#a5b19a; font-size:.62rem; text-transform:uppercase; letter-spacing:.12em; }
.group-activity { display:flex; justify-content:space-between; gap:17px; padding:17px 0; border-top:1px solid #353b4f; }
.group-activity > div { min-width:0; }
.group-activity .save-event { margin-top:7px; }
.group-activity-meta { display:flex; flex-wrap:wrap; gap:7px 14px; align-items:center; color:#929db4; font-size:.59rem; }
.activity-status { color:#b7de9d; }.activity-status.upcoming { color:#a0b9e9; }.activity-status.ended { color:#9299ae; }.activity-status.boundary { color:#e4bc7f; }
.activity-paid { color:#d5ab8a; }
.group-activity h4 { margin:9px 0 6px; }
.group-activity h4 button { text-align:left; padding:0; border:0; background:none; color:#e1e8ed; font-size:.88rem; line-height:1.4; }
.group-activity h4 button:hover { color:#bde698; }
.group-activity h4 button > span { color:#94ae86; font-size:.75rem; }
.group-activity p { margin:0; font-size:.73rem; line-height:1.55; color:#9fadc4; }
.group-activity small { display:block; margin-top:7px; font-size:.59rem; color:#c3a77b; }
.group-back { display:block; border:0; background:none; color:#b0c89c; font-size:.69rem; padding:0 35px 0 0; margin:0 0 22px; text-align:left; line-height:1.5; }

/* A grouped duration timeline with separate, expandable activity lanes. */
.timeline-panel { border:1px solid #394158; border-radius:14px; overflow:hidden; padding:25px 0 0; background:radial-gradient(ellipse at 80% 0,#2c324f55,transparent 40%),#111522; }
.timeline-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:0 24px; }
.timeline-heading .events-eyebrow { font-size:.55rem; color:#8590a9; margin:0 0 9px; }
.timeline-heading h3 { margin:0; font:400 1.6rem Georgia,serif; color:#e0e6ef; }
.timeline-month-controls { display:flex; align-items:center; gap:7px; }
.timeline-month-controls button { border:1px solid #444e66; padding:8px 11px; border-radius:6px; background:#1d2535; color:#b4c2d4; font-size:.67rem; }
.timeline-tools { display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; margin:23px 24px 10px; }
.timeline-legend { display:flex; flex-wrap:wrap; align-items:center; gap:16px; font-size:.6rem; color:#abb4c6; }
.timeline-legend > span { display:inline-flex; align-items:center; gap:5px; }
.timeline-legend i { display:inline-block; width:15px; height:6px; border-radius:2px; }.legend-live { background:#92bf79; }.legend-upcoming { background:#748ee0; }
.timeline-legend .legend-start { color:#a6d587; }.timeline-legend .legend-end { color:#e6b572; }.timeline-legend .legend-claim { color:#d4aa85; }.timeline-legend .legend-today { color:#d1b6ff; }
.timeline-tools > div:last-child { display:flex; gap:12px; }.timeline-tools button { border:0; background:none; color:#a0b893; font-size:.61rem; padding:0; }
.timeline-month-note { padding:0 24px; margin:12px 0 20px; font-size:.65rem; color:#8896b1; }
.timeline-scroll { overflow:auto; border-top:1px solid #323b51; max-height:760px; scrollbar-color:#48516a #131826; }
.timeline-canvas { min-width:1040px; }
.timeline-row { display:grid; grid-template-columns:220px minmax(0,1fr); }
.timeline-date-row { position:sticky; top:0; z-index:12; background:#1b2131; border-bottom:1px solid #424e65; }
.timeline-date-row > .timeline-label { padding:16px 20px; font-size:.55rem; letter-spacing:.12em; color:#b3c0d0; }
.timeline-label { position:sticky; left:0; z-index:5; border-right:1px solid #354156; padding:12px 15px; display:flex; align-items:center; gap:10px; background:#161c2b; }
.timeline-label small { display:block; margin-top:4px; font-size:.57rem; color:#8491ab; letter-spacing:0; line-height:1.4; }
.timeline-date-row .timeline-label { display:block; z-index:15; background:#1b2131; }
.timeline-dates { display:grid; grid-template-columns:repeat(var(--timeline-days),minmax(0,1fr)); }
.timeline-dates > span { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:7px; color:#bbc3d4; font-size:.67rem; border-right:1px solid #31394f; }
.timeline-dates small { font-size:.49rem; color:#69758c; }.timeline-dates .weekend { background:#262c3f; color:#d5c5a6; }.timeline-dates .is-today { background:#493967; color:#eee3ff; }.timeline-dates .is-today small { color:#c5afd9; }
.timeline-family { --timeline-color:#95b984; border-bottom:1px solid #333b50; }
.timeline-family[data-theme="magic"] { --timeline-color:#ae9adb; }.timeline-family[data-theme="community"] { --timeline-color:#83c2ce; }.timeline-family[data-theme="shop"] { --timeline-color:#c2a0d1; }.timeline-family[data-theme="sunday"] { --timeline-color:#dbb876; }.timeline-family[data-theme="halloween"],.timeline-family[data-theme="bloodmoon"] { --timeline-color:#df9f8a; }.timeline-family[data-theme="countdown"] { --timeline-color:#91afe0; }
.timeline-expand { padding:0; flex:0 0 24px; width:24px; height:24px; border:1px solid #48566d; border-radius:5px; background:#232d3f; color:#c0d1dc; font-size:.85rem; }
.timeline-group-title { min-width:0; border:0; background:none; text-align:left; color:#d4dce7; padding:0; line-height:1.3; }
.timeline-group-title strong { font-weight:600; font-size:.75rem; }.timeline-group-title:hover strong { color:var(--timeline-color); }
.timeline-track { position:relative; min-height:70px; background-image:linear-gradient(90deg,#34405966 1px,transparent 1px); background-size:calc(100% / var(--timeline-days)) 100%; }
.timeline-now { position:absolute; z-index:3; width:1px; background:#c9a4ff99; top:0; bottom:0; pointer-events:none; box-shadow:0 0 8px #bca0ed44; }
.timeline-envelope { position:absolute; height:19px; top:26px; border:1px solid color-mix(in srgb,var(--timeline-color),transparent 45%); background:color-mix(in srgb,var(--timeline-color),transparent 84%); border-radius:5px; }
.timeline-envelope.upcoming { background:repeating-linear-gradient(120deg,#778ce01b 0px,#778ce01b 6px,#778ce037 6px,#778ce037 10px); border-color:#8196d05e; }
.timeline-envelope.ended { filter:grayscale(1); opacity:.5; }
.timeline-envelope.open-right { border-right-style:dashed; border-top-right-radius:0; border-bottom-right-radius:0; }
.timeline-envelope.open-right::after { content:"→"; position:absolute; right:3px; top:0; color:var(--timeline-color); font-size:.65rem; }
.timeline-marker { position:absolute; z-index:4; top:23px; transform:translateX(-50%); display:grid; place-items:center; width:19px; height:25px; padding:0; border:0; background:none; font-size:.85rem; color:#aada8c; }
.timeline-marker.end { top:31px; color:#efbe80; }.timeline-marker.claim { top:15px; color:#edaf81; }.timeline-marker:hover { color:#fff; filter:drop-shadow(0 0 4px currentColor); }
.child-row { border-top:1px solid #29344a; }.child-row .timeline-label { background:#121927; padding-left:49px; }.child-row .timeline-label button { padding:0; border:0; background:none; color:#adbace; font-size:.65rem; text-align:left; line-height:1.4; }.child-row .timeline-label button:hover { color:#e2eccf; }
.child-row .timeline-track { min-height:55px; background-color:#101726; }.child-row .timeline-label small { font-size:.52rem; }
.timeline-bar { position:absolute; z-index:4; top:14px; height:27px; padding:0 7px; min-width:6px; overflow:hidden; border:1px solid #91b57977; border-radius:5px; background:linear-gradient(100deg,#344b32,#324d3e); color:#cde2bc; text-align:right; font-size:.57rem; white-space:nowrap; }
.timeline-bar.upcoming { background:repeating-linear-gradient(120deg,#26365b 0px,#26365b 6px,#2a3c66 6px,#2a3c66 11px); border-color:#7d9ae177; color:#b8c9f2; }.timeline-bar.urgent,.timeline-bar.boundary { background:linear-gradient(100deg,#534531,#42392c); border-color:#ba946577; color:#edcc9b; }.timeline-bar.ended { background:#292f3e; border-color:#5b647977; color:#98a0b1; }.timeline-bar:hover { filter:brightness(1.3); }.timeline-bar span { pointer-events:none; }
.timeline-bar.continues-left { border-left-style:dashed; border-top-left-radius:0; border-bottom-left-radius:0; }.timeline-bar.continues-right { border-right-style:dashed; border-top-right-radius:0; border-bottom-right-radius:0; }
.timeline-claim { position:absolute; z-index:4; top:20px; height:15px; padding:0 4px; border:1px dashed #b38d62; border-radius:4px; background:#ad855a22; color:#d3b28a; font-size:.5rem; text-align:center; overflow:hidden; }
.timeline-outside { position:absolute; top:20px; left:10px; font-size:.55rem; color:#64728c; }
.timeline-footnote { padding:17px 24px; margin:0; border-top:1px solid #30394d; font-size:.62rem; line-height:1.6; color:#818fa8; }
.timeline-no-events { padding:35px 24px; color:#96a4bf; font-size:.75rem; }
.events-page .event-grid { grid-template-columns:1fr; gap:12px; }
.event-dropdown { display:block; scroll-margin-top:105px; }
.event-dropdown > summary { display:flex; align-items:center; gap:22px; padding:23px 26px; cursor:pointer; list-style:none; }
.event-dropdown > summary::-webkit-details-marker { display:none; }
.dropdown-symbol { flex:0 0 58px; width:58px; height:70px; display:grid; place-items:center; font:2.3rem Georgia,serif; color:var(--event-accent); border:1px solid color-mix(in srgb,var(--event-accent),transparent 78%); border-radius:12px; background:radial-gradient(ellipse at 50% 100%,var(--art-glow),transparent 90%); }
.dropdown-copy { flex:1; min-width:0; }
.dropdown-copy .card-topline { justify-content:flex-start; gap:14px; margin-bottom:9px; }
.dropdown-copy h3 { margin:0 0 6px; font-size:1.03rem; color:#e8edf5; font-weight:600; }
.dropdown-copy > p { margin:0 0 11px; color:#99a5bc; font-size:.73rem; line-height:1.6; }
.dropdown-copy .main-milestone { min-height:0; margin-top:6px; }
.dropdown-end { flex:0 0 170px; text-align:right; display:grid; gap:17px; }
.dropdown-end strong { color:#edd09c; font-size:.82rem; font-weight:650; }
.dropdown-end small { color:#8c99ae; font-size:.55rem; margin-top:-12px; }
.dropdown-end > span { color:var(--event-accent); font-size:.65rem; }
.dropdown-end i { display:inline-block; margin-left:8px; font:normal 1rem Georgia; transition:transform .15s; }
.event-dropdown[open] .dropdown-end i { transform:rotate(180deg); }
.event-dropdown[open] > summary { border-bottom:1px solid #353c51; background:#ffffff03; }
.dropdown-contents { padding:4px 28px 24px 106px; }
.dropdown-contents .group-sections { margin:20px 0; }
.activity-category > summary { color:#c2d3b4; font-size:.75rem; font-weight:650; cursor:pointer; padding:11px 0; }
.activity-category > summary > span { margin-left:10px; color:#7c8ba5; font-size:.6rem; font-weight:400; }
.activity-category .group-activity { padding:15px 0; }
.dropdown-contents .detail-source { padding-top:16px; }
.activity-page-link { display:inline-block; margin-top:9px; color:#a1bd8c; font-size:.62rem; text-decoration:none; }
.activity-page-link:hover { color:#d4f8b8; text-decoration:underline; }
.detail-source .full-event-link { padding:9px 12px; border:1px solid #728a5d88; background:#31422c66; border-radius:6px; margin-top:-8px; }
.guide-section-icon { width:19px; height:19px; vertical-align:middle; margin-right:7px; flex:0 0 auto; }
.guide-page .page-shell { max-width:1280px; }
.guide-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:34px 0 23px; font-size:.72rem; color:#7c89a2; }
.guide-breadcrumb a { color:#b1c59d; text-decoration:none; }.guide-breadcrumb a:hover { text-decoration:underline; }
.guide-hero { display:grid; grid-template-columns:minmax(0,1fr) 310px; min-height:300px; border-radius:17px; background:radial-gradient(ellipse at 85% 30%,var(--art-glow),transparent 60%),linear-gradient(140deg,#1a2331,#171625); }
.guide-hero-copy { padding:38px 40px; }
.guide-hero .events-eyebrow { color:var(--event-accent); font-size:.56rem; margin-bottom:23px; }
.guide-hero .detail-label { margin-bottom:13px; }
.guide-hero h1 { margin:0; font:400 clamp(2.2rem,4vw,3.4rem)/1.12 Georgia,serif; letter-spacing:-.03em; color:#f0ecf5; }
.guide-hero-copy > p:not(.events-eyebrow) { max-width:570px; font-size:.85rem; color:#aab8ca; line-height:1.75; margin:17px 0 23px; }
.guide-hero-dates { display:flex; flex-wrap:wrap; gap:12px 25px; font-size:.72rem; color:#b6bfd0; }.guide-hero-dates strong { color:#e7c794; font-weight:650; }
.guide-emblem { position:relative; display:grid; place-items:center; color:var(--event-accent); margin:30px; }
.guide-emblem::before,.guide-emblem::after,.guide-emblem i { content:""; position:absolute; width:210px; height:210px; border:1px solid currentColor; opacity:.18; border-radius:50%; }
.guide-emblem::after { width:255px; height:255px; border-style:dashed; opacity:.12; }.guide-emblem i { width:166px; height:166px; transform:rotate(45deg); border-radius:20px; opacity:.2; }
.guide-emblem svg { width:130px; height:130px; filter:drop-shadow(0 0 17px var(--art-glow)); }
.guide-emblem span { position:absolute; left:4px; top:10px; font-size:30px; }.guide-emblem b { position:absolute; right:13px; bottom:13px; font-size:20px; font-weight:400; }
.guide-layout { display:grid; grid-template-columns:minmax(0,1fr) 295px; gap:25px; margin:28px 0 60px; align-items:start; }
.guide-body { border:1px solid #323c50; background:#121724; border-radius:12px; padding:28px 30px; min-width:0; }
.guide-body .detail-facts { margin-top:0; }
.guide-body .detail-section { margin:30px 0; }.guide-body .detail-section h3 { font-size:.95rem; display:flex; align-items:center; }
.guide-body .detail-section li { font-size:.83rem; }.guide-body .detail-rewards span { padding:10px 12px; font-size:.72rem; }
.guide-contents-heading h2 { margin:0; font:400 1.6rem Georgia,serif; }.guide-contents-heading p { font-size:.75rem; color:#90a0b8; line-height:1.6; margin-bottom:24px; }
.guide-body .activity-category > summary { font-size:.85rem; }
.guide-aside { display:grid; gap:16px; }
.guide-aside-panel { border:1px solid #323d50; border-radius:12px; background:linear-gradient(145deg,#1b2230,#141a25); padding:23px; }
.guide-aside-panel .events-eyebrow { font-size:.52rem; color:#9db58b; }.guide-aside-panel h2 { margin:0 0 15px; font-size:.88rem; font-weight:600; color:#d1dcce; }
.guide-aside-panel p { font-size:.68rem; line-height:1.7; color:#8b9cb6; }.guide-aside-panel .guide-next-deadline { font-size:.82rem; color:#e1c296; margin-bottom:15px; }
.guide-aside-panel small { font-size:.58rem; color:#7e8ca6; }.guide-aside-panel a { display:block; font-size:.7rem; line-height:1.6; color:#b4c9a0; text-decoration:none; margin:10px 0; }.guide-aside-panel a:hover { text-decoration:underline; }
.guide-highlight-list { margin:0; padding:0; list-style:none; display:grid; gap:12px; }.guide-highlight-list li { display:flex; gap:9px; font-size:.72rem; color:#a9b8cb; line-height:1.5; }.guide-highlight-list span { color:#b9c997; }
.guide-loading,.guide-error { margin:65px 0; color:#a0b1c6; }.guide-error h1 { font:2rem Georgia,serif; }.guide-error a { color:#b6d399; }.guide-error button { background:#263825; color:#b6d399; border:1px solid #667d53; padding:10px 14px; border-radius:6px; margin-right:20px; }
@media(max-width:900px) { .guide-hero { grid-template-columns:minmax(0,1fr) 220px; }.guide-emblem { margin:15px; }.guide-emblem::after { width:190px; height:190px; }.guide-emblem::before { width:150px; height:150px; }.guide-emblem i { width:120px; height:120px; }.guide-emblem svg { width:100px; height:100px; }.guide-layout { grid-template-columns:minmax(0,1fr) 245px; gap:16px; }.guide-body { padding:24px; } }
@media(max-width:650px) { .guide-breadcrumb { font-size:.62rem; margin-top:24px; }.guide-hero { grid-template-columns:1fr; }.guide-hero-copy { padding:28px 24px; position:relative; z-index:1; }.guide-hero h1 { font-size:2.2rem; }.guide-emblem { position:absolute; right:-70px; bottom:0; width:210px; height:210px; opacity:.13; pointer-events:none; }.guide-layout { grid-template-columns:1fr; margin-top:20px; }.guide-body { padding:23px 20px; }.guide-aside { grid-template-columns:1fr; }.guide-hero-dates { font-size:.68rem; } }
@media(max-width:650px) { .event-dropdown > summary { gap:12px; padding:18px 16px; flex-wrap:wrap; }.dropdown-symbol { flex-basis:38px; width:38px; height:48px; font-size:1.6rem; }.dropdown-copy { flex-basis:calc(100% - 55px); }.dropdown-copy .card-topline { gap:8px; flex-wrap:wrap; }.dropdown-copy h3 { font-size:.95rem; }.dropdown-end { flex:1; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:7px 14px; padding-left:50px; text-align:left; }.dropdown-end small { margin:0; order:3; flex-basis:100%; }.dropdown-end strong { font-size:.72rem; }.dropdown-contents { padding:4px 18px 20px; } }
@media(max-width:650px) { .event-browser > .events-section-heading { flex-wrap:wrap; gap:15px; }.main-event-art { padding:14px 19px; }.main-event-card .card-copy > p { min-height:0; }.timeline-heading { padding:0 15px; gap:10px; }.timeline-heading h3 { font-size:1.25rem; }.timeline-heading .events-eyebrow { font-size:.46rem; }.timeline-month-controls { gap:4px; }.timeline-month-controls button { padding:7px 8px; font-size:.55rem; }.timeline-tools { margin:18px 15px 8px; gap:12px; }.timeline-legend { gap:10px; font-size:.54rem; }.timeline-month-note { padding:0 15px; }.timeline-footnote { padding:15px; }.timeline-row { grid-template-columns:185px minmax(0,1fr); }.timeline-group-title strong { font-size:.68rem; }.timeline-label { padding:12px 9px; gap:7px; }.child-row .timeline-label { padding-left:34px; }.timeline-scroll { max-height:650px; } }
/* Long-form mechanics and rewards appear only in the standalone activity guide. */
.guide-body { min-width:0; }
.full-guide-section { padding-bottom:26px; }
.full-guide-section h2 { scroll-margin-top:110px; display:flex; align-items:center; gap:10px; margin:0 0 18px; font-size:1.1rem; line-height:1.4; color:#e2e6ee; }
.full-guide-section[data-kind="rewards"] h2,.full-guide-section[data-kind="shop"] h2 { color:#d2c0ef; }
.guide-instructions { margin:0; padding-left:20px; color:#b5c0d1; font-size:.85rem; line-height:1.85; }
.guide-instructions li + li { margin-top:12px; }
.guide-table-scroll { overflow:auto; border:1px solid #353e53; border-radius:9px; scrollbar-color:#535d78 #151a28; }
.guide-table-scroll:focus-visible { outline:2px solid #c4a1e8; outline-offset:3px; }
.guide-reward-table { width:100%; border-collapse:collapse; font-size:.8rem; line-height:1.65; text-align:left; }
.guide-reward-table th,.guide-reward-table td { padding:13px 15px; border-bottom:1px solid #30384b; vertical-align:top; overflow-wrap:anywhere; }
.guide-reward-table thead th { background:#242a3d; color:#c6b9e0; font-size:.69rem; font-weight:600; letter-spacing:.03em; white-space:nowrap; }
.guide-reward-table tbody th { color:#d2d9e5; font-weight:500; min-width:90px; }
.guide-reward-table td { color:#afbdd0; }
.guide-reward-table tbody tr:nth-child(even) { background:#1a21313d; }
.guide-reward-table tbody tr:last-child > * { border-bottom:0; }
.guide-table-note { padding:14px 16px; margin:14px 0 0; border-left:2px solid #9e86b8; background:#2b27343b; color:#a9b6c9; font-size:.75rem; line-height:1.8; }
.guide-toc a { display:flex; gap:12px; line-height:1.5; }
.guide-toc a span { flex:0 0 20px; color:#7d7399; font-size:.68rem; padding-top:2px; }
.guide-toc a:hover { color:#d5beee; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:600px) { .guide-reward-table { min-width:480px; } .full-guide-section h2 { font-size:1rem; } .guide-table-note { padding:12px; } }

.guide-mobile-toc { display:none; }
@media(max-width:650px) { .guide-mobile-toc { display:block; margin-top:20px; } .guide-mobile-toc summary { color:#d1dcce; font-size:.85rem; cursor:pointer; } .guide-mobile-toc a { display:block; margin:12px 0; font-size:.76rem; color:#b4c9a0; line-height:1.5; text-decoration:none; } .guide-aside .guide-toc { display:none; } }
