/* Día de Muertos 2026 — Amilotl seasonal edition. */
.festival-defs { position:absolute; width:0; height:0; overflow:hidden; pointer-events:none; }
.festival-icon { display:block; width:80px; height:90px; flex-shrink:0; }
.festival-edition { background-color:var(--cream); background-image:radial-gradient(#d39c5220 .7px,transparent .7px); background-size:7px 7px; }
.site-header { border-bottom:0; }
.edition { background:var(--green-deep); color:var(--yellow); padding:8px 12px; border:0; }
.papel-garland { display:flex; justify-content:space-around; gap:22px; height:92px; overflow:hidden; border-top:2px solid #8e624b; padding:0 18px; pointer-events:none; }
.papel-garland .flag { width:75px; height:82px; transform-origin:50% 0; }
.flag-0 { color:var(--orange); transform:rotate(-6deg); }.flag-1 { color:var(--green); transform:rotate(5deg); }.flag-2 { color:#b74461; transform:rotate(-3deg); }.flag-3 { color:#ca8515; transform:rotate(6deg); }
.hero { padding-block:40px 65px; min-height:570px; }
.hero .eyebrow { color:#a94021; }
.hero h1 { font-size:clamp(40px,4.4vw,57px); }
.hero h1 span { position:relative; }
.hero h1 span::after { content:''; display:block; width:150px; height:5px; background:var(--yellow); border-radius:50%; margin-top:12px; transform:rotate(-3deg); }
.mascot-guide { isolation:isolate; padding-top:40px; min-height:450px; justify-content:center; }
.mascot-guide::before { content:''; position:absolute; z-index:-3; inset:28px 7% 20px; border-radius:48% 48% 12% 12%; background:#f2dfbd; border:1px solid #dcbd8c; }
.hero-motion-frame { position:absolute; z-index:-2; inset:28px 7% 20px; border-radius:48% 48% 12% 12%; overflow:hidden; background:#12463a; pointer-events:none; }
.hero-motion-frame::after { content:''; position:absolute; inset:0; z-index:1; border-radius:inherit; border:1px solid #dcbd8c; box-shadow:inset 0 0 0 10px var(--cream),inset 0 0 0 12px #d7b77b; }
.hero-motion-frame img,.hero-motion-frame video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.hero-motion-frame video { opacity:0; transition:opacity .35s ease; }
.hero-motion-frame video.is-playing { opacity:1; }
.mascot-image { width:min(94%,390px); z-index:1; }
.mascot-guide.is-active .mascot-image{animation:festival-hero-bob 3.8s ease-in-out infinite}
@keyframes festival-hero-bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-7px) rotate(1deg)}}
.hero-look-link{color:var(--green-deep);font-weight:700;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.hero-look-link:hover{color:#a94021}
.mascot-guide figcaption { background:var(--cream); border:1px solid var(--line); padding:5px 12px; border-radius:30px; z-index:2; }
.mascot-greeting { z-index:2; font-size:12px; }
.flower-arch { position:absolute; inset:0; z-index:-1; pointer-events:none; }
.arch-flower { position:absolute; width:74px; height:74px; filter:drop-shadow(0 3px 0 #8c4d2320); }
.flower-0{left:2%;top:57%}.flower-1{left:1%;top:34%}.flower-2{left:8%;top:14%}.flower-3{left:24%;top:2%}.flower-4{left:43%;top:-2%}.flower-5{right:20%;top:3%}.flower-6{right:5%;top:17%}.flower-7{right:0;top:36%}.flower-8{right:0;top:57%}
.hero-skull { position:absolute; left:0; bottom:13px; width:90px; height:108px; transform:rotate(-13deg); z-index:2; filter:drop-shadow(0 6px 0 #d6bd9d); }
.hero-catrina { position:absolute; right:-8px; bottom:8px; width:114px; height:158px; transform:rotate(8deg); z-index:2; filter:drop-shadow(0 6px 0 #d6bd9d); }
.festival-stamp { position:absolute; left:-20px; top:3px; display:grid; place-content:center; text-align:center; width:83px; height:83px; border:1px dashed #e5a44d; border-radius:50%; background:var(--green-deep); color:var(--yellow); font-size:8px; letter-spacing:1px; transform:rotate(-12deg); z-index:3; }
.festival-stamp b { font:900 27px var(--display); letter-spacing:0; }
.archive-note { border-left:5px solid #e89b20; }
.explore-band { border-top:9px solid #e9a124; position:relative; background-image:radial-gradient(#ffc22e18 1px,transparent 1px); background-size:22px 22px; }
.explore-band::before { content:''; display:block; height:10px; background:radial-gradient(circle at 10px 0,#e9a124 9px,transparent 10px) repeat-x; background-size:20px 10px; }
.city-number { width:30px; height:30px; display:grid; place-items:center; background:#f8dfaa; border-radius:50%; color:#8d341d; font-size:14px; }
.city-card.selected { box-shadow:0 0 0 2px var(--yellow); }
.activity-list a { text-decoration:underline; text-underline-offset:3px; color:var(--green-deep); overflow-wrap:anywhere; }
.festival-stories { padding-block:68px 60px; }
.symbols-heading { text-align:center; max-width:680px; margin:0 auto 30px; }
.symbols-heading h2 { font-size:30px; }
.symbols-heading>p:last-child { color:var(--muted); font-size:14px; }
.symbol-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:start; }
.symbol-card { background:var(--surface); border:1px solid #d9be96; border-radius:18px; box-shadow:0 5px 0 #ebd7b7; overflow:hidden; }
.symbol-card summary { display:flex; align-items:center; gap:13px; cursor:pointer; padding:22px 16px; list-style:none; min-height:140px; }
.symbol-card summary::-webkit-details-marker { display:none; }
.symbol-card .festival-icon { width:60px; height:86px; transition:transform .2s; }
.symbol-card summary:hover .festival-icon { transform:rotate(-7deg); }
.symbol-card small { display:block; color:#a94021; font-size:9px; letter-spacing:1px; margin-bottom:8px; }
.symbol-card strong { font:700 16px var(--serif); display:block; }
.symbol-card .reveal { margin-left:auto; color:var(--green); font-size:22px; }
.symbol-card[open] .reveal { transform:rotate(45deg); }
.symbol-card>p { border-top:1px dashed var(--line); padding:20px; margin:0; line-height:1.9; font-size:14px; color:var(--muted); }
.about { border-top:1px solid var(--line); }
.dialog-toolbar { border-top:5px solid var(--yellow); }
@media(max-width:1000px) { .papel-garland { gap:14px; }.papel-garland .flag { width:62px; height:70px; }.papel-garland { height:80px; }.hero { gap:28px; }.arch-flower { width:58px; height:58px; }.hero-catrina { width:88px; height:135px; }.hero-skull { width:72px; height:90px; }.symbol-card summary { flex-wrap:wrap; }.symbol-card strong { font-size:15px; }.symbol-card .festival-icon { width:48px; height:68px; } }
@media(max-width:700px) {
 .papel-garland { gap:15px; height:62px; padding-inline:8px; }.papel-garland .flag { width:45px; height:52px; }.papel-garland .flag:nth-child(n+8) { display:none; }
 .hero { padding-block:28px 42px; gap:40px; }.hero h1 { font-size:39px; }.hero h1 span::after { width:115px; }
 .mascot-guide { width:min(100%,380px); margin:0 auto; min-height:410px; padding-top:42px; }.mascot-image { width:310px; max-width:88%; }.mascot-guide::before,.hero-motion-frame { inset:20px 7% 15px; }.mascot-greeting { font-size:11px; }.mascot-guide figcaption { font-size:10px; max-width:72%; }
 .festival-stamp { left:0; top:0; width:68px; height:68px; font-size:7px; }.festival-stamp b { font-size:23px; }.arch-flower { width:60px; height:60px; }.hero-skull { left:0; bottom:10px; width:66px; height:83px; }.hero-catrina { right:0; bottom:0; width:80px; height:125px; }
 .festival-stories { padding-block:42px; }.symbols-heading h2 { font-size:24px; }.symbols-heading>p:last-child { font-size:13px; }.symbol-cards { grid-template-columns:1fr; gap:16px; }.symbol-card summary { flex-wrap:nowrap; min-height:104px; padding:16px 20px; }.symbol-card .festival-icon { width:56px; height:72px; }.symbol-card strong { font-size:17px; }.archive-note p { flex-basis:100%; }.card-top { align-items:flex-start; }.city-number { width:22px; height:22px; font-size:11px; flex-shrink:0; }.city-open { padding-right:30px; }.city-name { font-size:15px; }.card-bottom { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) { .symbol-card .festival-icon { transition:none; }.hero-motion-frame video { display:none; } }

/* Illustrated city journals */
#details-dialog { width:min(850px,calc(100% - 32px)); border:1px solid #dfbd83; background:#fbf1e2; overscroll-behavior:contain; }
#details-dialog .dialog-toolbar { background:#12463a; color:#fff8e9; border:0; padding:12px 24px; }
#details-dialog .dialog-toolbar .eyebrow { color:#ffda80; font-size:10px; }
#details-dialog .icon-button { color:#fff8e9; border:1px solid #c4d1b9; width:38px; min-height:38px; }
#details-dialog #detail-content { padding:0; }
.city-cover { position:relative; min-height:235px; padding:30px 190px 35px 32px; overflow:hidden; background:#1c5c4c; color:#fff8e9; }
.city-cover::before { content:''; position:absolute; inset:0; background:radial-gradient(#ffda8026 1px,transparent 1px); background-size:17px 17px; pointer-events:none; }
.cover-copy { position:relative; z-index:1; }.cover-kicker { font-size:9px; letter-spacing:2px; color:#ffda80; margin:0 0 18px; }.cover-kicker span { margin-left:14px; }.cover-spanish { font:italic 20px var(--display); margin:0 0 6px; color:#ffe5b2; }
.city-cover h2 { font-size:42px; line-height:1.25; color:#fff8e9; letter-spacing:1px; }.cover-tags { display:flex; gap:8px; flex-wrap:wrap; margin-top:18px; }.cover-tags span { font-size:10px; border:1px solid #f5d69a80; border-radius:20px; padding:4px 10px; }
.cover-art { position:absolute; width:160px; height:190px; right:25px; bottom:17px; pointer-events:none; }.cover-art svg:nth-child(2) { position:absolute; width:116px; height:150px; left:25px; top:28px; transform:rotate(9deg); filter:drop-shadow(0 7px 0 #062b3450); }.cover-art svg:first-child { position:absolute; width:75px; height:75px; left:-10px; top:7px; transform:rotate(-15deg); }.cover-art svg:last-child { position:absolute; width:57px; height:57px; right:-6px; bottom:0; }
.cover-border { position:absolute; bottom:0; left:0; width:100%; height:10px; background:radial-gradient(circle at 10px 0,#ffc22e 8px,transparent 9px) repeat-x; background-size:20px 10px; }
.city-cover .detail-save { position:absolute; right:16px; top:12px; background:#fff8e9; color:#a13b25; width:38px; height:38px; z-index:2; }
[data-city="puebla"] .city-cover,[data-city="merida"] .city-cover { background:#8d3850; }[data-city="oaxaca"] .city-cover { background:#994025; }[data-city="guanajuato"] .city-cover { background:#4e426b; }
.journal-body { padding:26px 32px 32px; }.guide-intro { display:flex; gap:15px; align-items:center; }.guide-intro img { object-fit:contain; width:72px; height:72px; flex-shrink:0; }.guide-label { color:#a13b25; font-size:11px; font-weight:700; letter-spacing:1px; }.guide-intro .detail-summary { margin:6px 0 0; font-size:14px; }
.journal-body .detail-facts { margin:22px 0 16px; }.journal-body .detail-facts div { border:0; border-left:3px solid #d89827; background:#f4e6cd; padding:13px 15px; border-radius:0 10px 10px 0; }.journal-body .detail-facts dt { font-size:10px; color:#83512e; letter-spacing:1px; }.journal-body .detail-facts dd { font-size:13px; }
.source-note { border:1px dashed #cbb693; border-radius:10px; padding:12px 15px; font-size:12px; color:#6a5343; }.source-note summary { cursor:pointer; color:#345848; font-weight:700; }.source-note summary span { float:right; font-size:10px; font-weight:400; }.source-note p { line-height:1.9; margin-bottom:0; }
.journal-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-top:30px; }.journal-heading .eyebrow { font-size:9px; margin:0 0 6px; }.journal-heading .detail-subtitle { margin:0; font-size:23px; }.journal-count { font:italic 42px var(--display); color:#c47a28; }.local-time-note { font-size:11px; color:#6a5343; margin:6px 0 20px; }
.festival-tickets { display:grid; gap:22px; margin:0 0 28px; }.festival-tickets li { padding:0; border:1px solid #ddc9a9; border-radius:15px; overflow:hidden; background:#fffcf7; box-shadow:0 5px 0 #e8d6b9; }.ticket-top { display:flex; align-items:center; justify-content:space-between; gap:10px; background:#eed7ac; padding:10px 20px; color:#65432b; font-size:9px; letter-spacing:1px; }.ticket-number { font-weight:800; }.ticket-year { font-size:8px; }
.ticket-body { padding:20px 22px 15px; }.festival-tickets h4 { font-size:21px; color:#12463a; line-height:1.5; margin-bottom:15px; }.festival-tickets .activity-meta { gap:8px; margin-bottom:14px; }.ticket-date { background:#12463a; color:#fff8e9; border-radius:7px; padding:5px 10px; font-size:12px; font-weight:700; }.ticket-time { background:#f9e8c7; color:#604220; border-radius:7px; padding:5px 10px; font-size:12px; }.ticket-location { display:flex; align-items:flex-start; gap:9px; }.ticket-location>span { font-size:23px; color:#a13b25; line-height:1.5; }.ticket-location p { margin:3px 0; font-weight:700; font-size:13px; }.festival-tickets .ticket-description { font-size:13px; margin-top:10px; }
.ticket-source { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; padding:13px 22px; border-top:1px dashed #c9b48f; background:#faf3e7; font-size:11px; }.ticket-source>span { color:#876440; font-size:10px; }.ticket-source a { font-weight:700; }
.journal-next { display:flex; align-items:center; gap:20px; padding:22px; border-radius:15px; background:#f0dfc3; }.journal-next svg { width:55px; height:70px; color:#9a3d50; }.journal-next .eyebrow { font-size:9px; margin:0; }.journal-next .detail-subtitle { font-size:18px; margin:6px 0; }.journal-next .detail-summary { font-size:12px; }.journal-next .resource-links a { background:#12463a; color:#fff8e9; font-size:11px; }
@media(max-width:700px) { #details-dialog { width:calc(100% - 16px); max-height:92dvh; border-radius:18px; }#details-dialog .dialog-toolbar { padding:10px 16px; }.city-cover { padding:26px 105px 30px 20px; min-height:220px; }.city-cover h2 { font-size:32px; }.cover-kicker { font-size:8px; letter-spacing:1px; }.cover-kicker span { display:block; margin:5px 0 0; }.cover-spanish { font-size:16px; }.cover-art { width:100px; height:145px; right:7px; bottom:15px; }.cover-art svg:nth-child(2) { width:78px; height:100px; left:10px; top:35px; }.cover-art svg:first-child { width:45px; height:45px; left:0; top:17px; }.cover-art svg:last-child { width:35px; height:35px; right:0; }.cover-tags span { font-size:9px; }.journal-body { padding:20px 16px 24px; }.guide-intro { gap:10px; align-items:flex-start; }.guide-intro img { width:50px; height:60px; }.guide-intro .detail-summary { font-size:13px; }.source-note summary span { display:block; float:none; margin:5px 0 0 16px; }.journal-heading .detail-subtitle { font-size:20px; }.journal-count { font-size:34px; }.ticket-top { padding:10px 15px; letter-spacing:.5px; }.ticket-year { font-size:7px; }.ticket-body { padding:17px 15px 12px; }.festival-tickets h4 { font-size:18px; }.ticket-source { padding:12px 15px; }.journal-next { padding:18px 15px; gap:12px; }.journal-next svg { width:38px; height:55px; }.journal-next .detail-subtitle { font-size:16px; } }

/* Attributed city photography: complete frames, never presented as 2026 reportage. */
.city-postcard { margin:0 0 26px; border:1px solid #d8c3a0; background:#fffcf7; border-radius:13px; box-shadow:0 5px 0 #e5d1ad; overflow:hidden; }
.postcard-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 16px; background:#f2e2c5; color:#755232; font-size:9px; letter-spacing:1px; }
.postcard-heading span:last-child { white-space:nowrap; letter-spacing:.5px; }
.postcard-image-link { display:block; position:relative; background:#173c33; padding:10px; }
.city-photo { display:block; width:100%; height:auto; max-height:420px; object-fit:contain; }
.photo-zoom { position:absolute; right:20px; bottom:20px; background:#fff8e9; border-radius:24px; color:#12463a; padding:7px 12px; font-size:11px; box-shadow:0 2px 10px #0003; }
.postcard-image-link:hover .photo-zoom { background:#ffc22e; }
.city-postcard figcaption { padding:18px 20px; }.postcard-caption { display:flex; align-items:flex-start; gap:12px; }.photo-flower { color:#cc7419; font-size:30px; line-height:1.2; }.postcard-caption h3 { margin:0 0 7px; font:700 19px/1.5 var(--serif); color:#12463a; }.postcard-caption p { font-size:11px; color:#795b40; margin:0; line-height:1.8; }
.photo-credit { border-top:1px dashed #dbc6a8; margin-top:14px; padding-top:12px; font-size:10px; color:#6a5343; }.photo-credit summary { cursor:pointer; line-height:1.8; }.photo-credit p { margin-bottom:0; overflow-wrap:anywhere; line-height:1.9; }.photo-credit a { text-decoration:underline; text-underline-offset:3px; }
@media(max-width:700px) { .postcard-heading { padding:10px 12px; font-size:8px; letter-spacing:.3px; }.postcard-heading span:first-child { max-width:65%; }.postcard-image-link { padding:6px; }.city-photo { max-height:370px; }.photo-zoom { right:12px; bottom:12px; font-size:10px; padding:5px 9px; }.city-postcard figcaption { padding:14px; }.postcard-caption h3 { font-size:17px; }.photo-flower { font-size:24px; } }
.city-album{--album-height:min(420px,max(60px,calc(92dvh - 240px)));min-width:0;overflow:hidden;width:min(100%,calc(var(--album-height) * var(--photo-ratio,1) + 2px));margin-inline:auto}
.album-stage{width:100%;aspect-ratio:var(--photo-ratio,1);background:#fffcf7;position:relative;overflow:hidden;touch-action:pan-y pinch-zoom}
.album-picture{position:relative;display:block;width:100%;height:auto;padding:0;border:0;border-radius:0;background:none;color:#fff;cursor:zoom-in}
.album-picture img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center}
.album-status{position:absolute;left:10px;right:10px;top:12px;text-align:center;font-size:13px;background:#123e35;color:#fff}
.album-status:empty{display:none}
.album-controls{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#fff5e4;border-bottom:1px solid #e5cfaa}
.album-controls button,.album-close{width:44px;height:44px;border:1px solid #1c5c4c;border-radius:50%;background:transparent;color:#1c5c4c;font-size:24px;cursor:pointer}
.album-controls button:hover{background:#ffc22e}
.album-counter{font-size:13px;font-weight:700;letter-spacing:.16em;color:#1c5c4c;font-variant-numeric:tabular-nums}
.city-album .postcard-heading{min-height:52px;gap:12px;flex-wrap:wrap}
.city-album .postcard-caption{min-height:120px}
.city-album .photo-credit{overflow-wrap:anywhere}
.city-album button:focus-visible,.album-close:focus-visible{outline:3px solid #ff6a43;outline-offset:-4px}
#photo-lightbox{width:min(1100px,calc(100% - 24px),calc(min(600px,max(60px,calc(100dvh - 240px))) * var(--photo-ratio,1) + 36px));min-width:min(280px,calc(100% - 24px));max-width:none;max-height:calc(100dvh - 24px);padding:0;border:1px solid #d9bc84;border-radius:18px;background:#fff8ec;color:#31271e;overflow:auto}
#photo-lightbox::backdrop{background:rgba(7,29,24,.92)}
.album-light-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;background:#fff8ec;position:sticky;top:0;z-index:2;border-bottom:1px solid #e5cfaa;font-size:11px;letter-spacing:.12em;color:#1c5c4c}
.album-light-content{padding:16px}
.album-light-content .city-album{--album-height:min(600px,max(60px,calc(100dvh - 240px)));margin:0 auto}
.album-light-content .album-picture{cursor:default}
.album-light-content .postcard-caption{min-height:0}
@media(max-width:600px){.album-controls{padding:8px 12px}.city-album .postcard-heading{padding:12px;font-size:9px}.album-light-content{padding:8px}.album-light-toolbar{padding:8px 12px}.city-album .postcard-caption{min-height:150px}}


.local-guide{margin:36px 0;border-top:2px solid #e4be79;padding-top:28px}
.local-guide-heading h3{font:700 28px/1.4 var(--serif);margin:6px 0;color:#12463a}
.local-guide-heading>p:last-child,.local-route p{font-size:14px;line-height:1.8;margin:8px 0}
.local-route{background:#f1e2c6;border-radius:12px;padding:17px 20px;margin:20px 0 12px;border-left:4px solid #d78a12}
.local-route strong{color:#12463a;font-size:12px}
.local-guide-meta{font-size:11px;line-height:1.8;color:#765c43}
.local-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
.local-place{display:flex;flex-direction:column;border:1px solid #dfc8a6;border-radius:13px;background:#fffcf7;padding:20px;min-width:0;box-shadow:0 4px 0 #ead8b9}
.local-kind{font-size:10px;letter-spacing:1px;color:#a64029;font-weight:700}
.local-place[data-kind="sight"] .local-kind{color:#1c5c4c}
.local-place[data-kind="makeup"] .local-kind,.local-place[data-kind="style"] .local-kind{color:#963d60}
.local-place h4{font:700 20px/1.4 var(--serif);margin:12px 0;color:#12463a;overflow-wrap:anywhere}
.local-place>p{font-size:13px;line-height:1.85;margin:7px 0;color:#66503c}
.local-place .local-area{font-size:11px;color:#896b48}
.local-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:14px;border-top:1px dashed #e2cfb0}
.local-links a{display:inline-flex;align-items:center;min-height:44px;font-size:11px;color:#12463a;text-decoration:underline;text-underline-offset:4px}
.local-service-note{background:#f8ecd9;border-radius:10px;padding:16px 20px;margin-top:22px;font-size:12px;line-height:1.9;color:#695039}
.local-service-note summary{cursor:pointer;color:#12463a;font-weight:700;min-height:30px}
@media(max-width:600px){.local-guide-grid{grid-template-columns:1fr}.local-guide-heading h3{font-size:24px}.local-place{padding:18px}.local-route{padding:15px}}
.local-guide-jump{display:block;padding:14px 18px;margin:0 0 24px;border:1px dashed #c99c55;border-radius:12px;background:#fff3db;color:#12463a;text-align:center;font-size:13px;font-weight:700;text-decoration:none}
#local-guide-title{scroll-margin-top:100px}
html:lang(en) .site-header .brand > span{display:inline}
html:lang(en) .site-header .brand b{display:none}

.festival-wardrobe{padding-block:12px 60px}
.festival-sticker-link{display:table;margin:28px auto 0;padding:12px 20px;border-radius:999px;background:var(--green-deep);color:#fff8e9;font-size:13px;font-weight:700;text-align:center;text-decoration:none}
.festival-sticker-link:hover{background:#1c5c4c;text-decoration:none}
.festival-wardrobe-heading{text-align:center;max-width:660px;margin:0 auto 28px}
.festival-wardrobe-heading .eyebrow{color:#a94021}
.festival-wardrobe-heading h2{font:700 clamp(27px,3vw,37px)/1.35 var(--serif);color:var(--green-deep);margin:0 0 10px}
.festival-wardrobe-heading>p:last-child{font-size:14px;line-height:1.8;color:var(--muted);margin:0}
.festival-wardrobe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.festival-look{margin:0;overflow:hidden;border:1px solid #d9be96;border-radius:18px;background:#fffaf0;box-shadow:0 5px 0 #ebd7b7}
.festival-look-art{position:relative;box-sizing:border-box;height:300px;overflow:hidden;background:radial-gradient(circle at 50% 92%,#edc77c 0 21%,transparent 22%),radial-gradient(#d39c5220 1px,transparent 1px),#f7e8c8;background-size:auto,16px 16px,auto}
.festival-look--papel .festival-look-art{background-color:#e4eee6}
.festival-look--memory .festival-look-art{background-color:#eee7ec}
.festival-look-art img{position:absolute;inset:10px;display:block;width:calc(100% - 20px);height:calc(100% - 20px);object-fit:contain;filter:drop-shadow(0 8px 0 #4c35201a)}
.festival-look-art::before,.festival-look-art::after{content:"";position:absolute;z-index:1;pointer-events:none;opacity:0}
.festival-look--marigold .festival-look-art img{transform-origin:48% 84%}
.festival-look--papel .festival-look-art img{transform-origin:50% 88%}
.festival-look--memory .festival-look-art img{transform-origin:50% 86%}
.festival-look--marigold .festival-look-art::before,.festival-look--marigold .festival-look-art::after{width:15px;height:9px;border-radius:80% 20% 80% 20%;background:#f39a24}
.festival-look--marigold .festival-look-art::before{left:13%;top:52%}
.festival-look--marigold .festival-look-art::after{right:11%;top:31%;background:#ffc22e}
.festival-look--papel .festival-look-art::before,.festival-look--papel .festival-look-art::after{width:13px;height:13px;clip-path:polygon(0 0,100% 0,100% 75%,75% 100%,50% 75%,25% 100%,0 75%);background:#b74461}
.festival-look--papel .festival-look-art::before{left:14%;top:25%}
.festival-look--papel .festival-look-art::after{right:13%;top:45%;background:#1c8a81}
.festival-look--memory .festival-look-art::before,.festival-look--memory .festival-look-art::after{width:8px;height:8px;border-radius:50%;background:#e7ad3d;box-shadow:0 0 0 5px #e7ad3d20,0 0 14px #e7ad3d80}
.festival-look--memory .festival-look-art::before{left:18%;top:30%}
.festival-look--memory .festival-look-art::after{right:17%;top:51%}
.festival-wardrobe.is-active .festival-look--marigold img{animation:festival-wave 3.6s ease-in-out infinite}
.festival-wardrobe.is-active .festival-look--papel img{animation:festival-dance 2.5s ease-in-out infinite}
.festival-wardrobe.is-active .festival-look--memory img{animation:festival-breathe 4.4s ease-in-out infinite}
.festival-wardrobe.is-active .festival-look--marigold .festival-look-art::before,.festival-wardrobe.is-active .festival-look--marigold .festival-look-art::after{animation:festival-petal 4s ease-in-out infinite}
.festival-wardrobe.is-active .festival-look--marigold .festival-look-art::after{animation-delay:-2s}
.festival-wardrobe.is-active .festival-look--papel .festival-look-art::before,.festival-wardrobe.is-active .festival-look--papel .festival-look-art::after{animation:festival-confetti 3s ease-in-out infinite}
.festival-wardrobe.is-active .festival-look--papel .festival-look-art::after{animation-delay:-1.5s}
.festival-wardrobe.is-active .festival-look--memory .festival-look-art::before,.festival-wardrobe.is-active .festival-look--memory .festival-look-art::after{animation:festival-glow 3.8s ease-in-out infinite}
.festival-wardrobe.is-active .festival-look--memory .festival-look-art::after{animation-delay:-1.9s}
@keyframes festival-wave{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-5px)}}
@keyframes festival-dance{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-12px) rotate(4deg)}}
@keyframes festival-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.025)}}
@keyframes festival-petal{0%{opacity:0;transform:translate(0,16px) rotate(0)}25%,75%{opacity:.9}100%{opacity:0;transform:translate(15px,-35px) rotate(110deg)}}
@keyframes festival-confetti{0%{opacity:0;transform:translateY(-12px) rotate(-12deg)}35%,70%{opacity:.9}100%{opacity:0;transform:translateY(45px) rotate(40deg)}}
@keyframes festival-glow{0%,100%{opacity:.15;transform:scale(.7)}50%{opacity:.9;transform:scale(1.3)}}
.festival-look figcaption{padding:18px 20px 22px}
.festival-look figcaption span{display:block;font-size:10px;font-weight:700;letter-spacing:1.3px;color:#a94021}
.festival-look h3{margin:8px 0;font:700 20px/1.4 var(--serif);color:var(--green-deep)}
.festival-look figcaption p{margin:0;font-size:13px;line-height:1.65;color:var(--muted)}
.festival-next{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-block:10px 64px;padding:30px 34px;border:1px solid #e2b56e;border-radius:16px;background:linear-gradient(120deg,#fff6e6,#f9e4bd);box-shadow:0 10px 0 #d7ac6950}
.festival-next .eyebrow{margin-bottom:10px;color:#a94021}
.festival-next h2{margin:0 0 10px;font:700 clamp(24px,2.7vw,34px)/1.35 var(--serif);color:var(--green-deep)}
.festival-next p:not(.eyebrow){margin:0;max-width:56ch;color:#5d4b38;font-size:14px;line-height:1.8}
.festival-next-actions{display:flex;flex-wrap:wrap;gap:10px;flex-shrink:0}
.festival-next-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 18px;border:1px solid var(--green-deep);border-radius:999px;font-size:13px;font-weight:700;text-align:center;text-decoration:none}
.festival-next-shop{background:var(--green-deep);color:#fff8e9}
.festival-next-line{background:#fff8e9;color:var(--green-deep)}
.festival-next-actions a:hover{text-decoration:none;filter:brightness(.94)}
@media(max-width:820px){.festival-wardrobe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.festival-look:last-child{grid-column:1 / -1}.festival-next{flex-direction:column;align-items:stretch}.festival-next-actions{flex-shrink:1}}
@media(max-width:600px){.festival-wardrobe{padding-block:12px 42px}.festival-wardrobe-grid{grid-template-columns:1fr}.festival-look:last-child{grid-column:auto}.festival-look-art{height:290px}.festival-next{padding:24px 20px;margin-block:18px 48px}.festival-next-actions{flex-direction:column}.festival-next-actions a{width:100%}}
@media(prefers-reduced-motion:reduce){.mascot-guide .mascot-image,.festival-wardrobe .festival-look-art img,.festival-wardrobe .festival-look-art::before,.festival-wardrobe .festival-look-art::after{animation:none!important}.festival-wardrobe .festival-look-art::before,.festival-wardrobe .festival-look-art::after{opacity:0}}
