:root{--ink:#18140d;--forest:#062b1a;--forest2:#0b3d26;--cream:#f8f2df;--gold:#d7b75f;--gold2:#f0db91;--line:rgba(215,183,95,.32);--serif:Georgia,"Times New Roman",serif;--sans:"Avenir Next","Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}html{color-scheme:dark;scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 70% 0,rgba(79,138,86,.26),transparent 32%),linear-gradient(180deg,#031c11,#062b1a 45%,#031c11);color:var(--cream);font-family:var(--sans);min-height:100vh}button,input{font:inherit}button,a{transition:.2s ease}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.festival-canopy{position:fixed;inset:0;z-index:4;overflow:hidden;pointer-events:none;contain:layout style}.festival-ornament{position:absolute;left:var(--x);top:var(--y);display:grid;place-items:center;width:calc(var(--size) + 18px);height:calc(var(--size) + 18px);padding:6px;border:1px solid rgba(240,219,145,.2);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.1),rgba(6,43,26,.2) 60%,transparent 72%);box-shadow:0 10px 28px rgba(0,0,0,.24),0 0 16px rgba(215,183,95,.1);font-size:var(--size);line-height:1;cursor:pointer;pointer-events:auto;opacity:.72;transform-origin:center;animation:festival-float var(--duration) ease-in-out var(--delay) infinite;will-change:transform;filter:drop-shadow(0 7px 7px rgba(0,0,0,.32));-webkit-tap-highlight-color:transparent}.festival-glyph{display:block;transition:transform .32s cubic-bezier(.2,.9,.2,1.35),filter .32s ease}.festival-glyph svg{display:block;width:1.35em;height:1.35em;overflow:visible;fill:none;stroke:#7fa85c;stroke-width:4.2;stroke-linecap:round;stroke-linejoin:round}.festival-glyph-pine svg{stroke:#5f914d}.festival-glyph-palm svg{stroke:#9aba64}.festival-glyph svg .branch-stem{stroke:#bc9650;stroke-width:5.2}.festival-ornament:hover,.festival-ornament:focus-visible{z-index:5;opacity:1;border-color:rgba(240,219,145,.8);background:radial-gradient(circle,rgba(240,219,145,.28),rgba(6,43,26,.22) 64%,transparent 74%);outline:none}.festival-ornament:hover .festival-glyph,.festival-ornament:focus-visible .festival-glyph{transform:scale(1.32) rotate(-9deg);filter:drop-shadow(0 0 13px rgba(240,219,145,.8))}.festival-ornament.is-celebrating .festival-glyph{animation:festival-celebrate .85s cubic-bezier(.2,.8,.2,1)}
@keyframes festival-float{0%,100%{transform:translate3d(var(--mouse-x,0px),calc(var(--mouse-y,0px) + var(--scroll-shift,0px)),0) rotate(-3deg)}50%{transform:translate3d(calc(var(--mouse-x,0px) + 9px),calc(var(--mouse-y,0px) - 15px + var(--scroll-shift,0px)),0) rotate(5deg)}}@keyframes festival-celebrate{0%,100%{transform:scale(1) rotate(0)}35%{transform:scale(1.65) rotate(18deg)}65%{transform:scale(1.25) rotate(-16deg)}}
.media-hero{min-height:72vh;padding:24px clamp(20px,5vw,80px) 72px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;border-bottom:1px solid var(--line)}.media-nav{position:absolute;top:24px;left:clamp(20px,5vw,80px);right:clamp(20px,5vw,80px);display:flex;justify-content:space-between;gap:20px}.media-nav a{color:var(--cream);text-decoration:none;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em}.media-nav a:hover{color:var(--gold2)}.eyebrow{color:var(--gold2)!important;font-weight:800;text-transform:uppercase;letter-spacing:.18em;font-size:.75rem}.media-hero h1{font:500 clamp(2.8rem,7vw,7rem)/.96 var(--serif);letter-spacing:-.045em;max-width:1200px;margin:12px auto 22px}.media-logo{display:block;width:84px;height:84px;object-fit:contain;filter:drop-shadow(0 8px 16px rgba(0,0,0,.5));margin-bottom:18px}.hero-copy{max-width:680px;color:rgba(248,242,223,.8);line-height:1.7;margin:0 0 25px}.primary{border:1px solid var(--gold);background:var(--gold);color:#151109;border-radius:999px;padding:14px 24px;font-weight:800;cursor:pointer}.primary:hover{background:var(--gold2);transform:translateY(-2px)}
main{width:min(1500px,100%);margin:auto;padding:42px clamp(16px,4vw,64px) 90px}.feed-tools{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:28px}.filter-group{display:flex;gap:8px}.filter,.load-more{border:1px solid var(--line);color:var(--cream);background:rgba(255,255,255,.04);padding:10px 17px;border-radius:999px;cursor:pointer}.filter.is-active,.filter:hover,.load-more:hover{color:#171109;background:var(--gold2)}.search input{width:min(420px,45vw);border:1px solid var(--line);background:rgba(0,0,0,.28);color:white;border-radius:999px;padding:13px 18px;outline:none}.search input:focus{border-color:var(--gold)}.status{color:rgba(248,242,223,.72);text-align:center}.status.is-error{color:#ffb4a8}.media-grid{columns:4 260px;column-gap:14px}.media-card{position:relative;break-inside:avoid;margin-bottom:14px;border:1px solid var(--line);background:#0a2117;border-radius:18px;overflow:hidden;cursor:pointer}.media-card img,.media-card video{display:block;width:100%;height:auto;min-height:180px;object-fit:cover;background:#07140e}.media-card-overlay{position:absolute;inset:auto 0 0;padding:38px 16px 15px;background:linear-gradient(transparent,rgba(0,0,0,.88));display:flex;align-items:end;justify-content:space-between;gap:12px}.media-card-copy{min-width:0}.media-card strong,.media-card span{display:block}.media-card strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.media-card small{color:rgba(255,255,255,.72)}.like{border:0;background:rgba(0,0,0,.38);color:white;border-radius:999px;padding:9px 12px;cursor:pointer;white-space:nowrap}.like:hover{color:var(--gold2)}.video-badge{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.72);border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:.75rem}.load-more{display:block;margin:30px auto}.load-more[hidden]{display:none}
dialog{padding:0;border:1px solid var(--line);background:#07150f;color:var(--cream);box-shadow:0 30px 100px rgba(0,0,0,.7)}dialog::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(8px)}.dialog-close{position:absolute;z-index:5;top:12px;right:14px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(0,0,0,.7);color:white;font-size:2rem;line-height:1;cursor:pointer}.viewer{width:min(1180px,96vw);height:min(820px,92vh);border-radius:20px;overflow:hidden}.viewer[open]{display:grid;grid-template-columns:minmax(0,1fr) 300px}.viewer-stage{display:flex;align-items:center;justify-content:center;background:#000;min-height:0}.viewer-stage img,.viewer-stage video{max-width:100%;max-height:100%;object-fit:contain}.viewer-info{padding:75px 24px 24px;display:flex;flex-direction:column;gap:10px}.viewer-info span,.viewer-info time{color:rgba(248,242,223,.7)}.viewer-info .like{margin-top:20px;align-self:flex-start}.viewer-arrow{position:absolute;z-index:4;top:50%;width:46px;height:56px;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:2.5rem;cursor:pointer}.viewer-arrow.prev{left:10px}.viewer-arrow.next{right:310px}.upload-dialog{width:min(680px,94vw);max-height:92vh;border-radius:20px;padding:clamp(24px,5vw,50px);overflow:auto}.upload-dialog h2{font:500 clamp(2.1rem,5vw,4rem)/1 var(--serif);margin:8px 0 10px}.upload-dialog form>p:not(.eyebrow){color:rgba(248,242,223,.72)}.upload-dialog label{display:grid;gap:8px;margin:17px 0;font-weight:700}.upload-dialog input:not([type=checkbox]){width:100%;border:1px solid var(--line);background:rgba(255,255,255,.06);color:white;padding:13px;border-radius:10px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.file-picker span{border:1px dashed var(--gold);border-radius:12px;padding:18px;text-align:center;color:var(--gold2)}.file-picker input{position:absolute;opacity:0;pointer-events:none}.consent{grid-template-columns:auto 1fr!important;align-items:start;font-weight:400!important;font-size:.9rem}.consent input{margin-top:4px}.upload-progress{height:8px;background:rgba(255,255,255,.1);border-radius:9px;overflow:hidden}.upload-progress span{display:block;width:0;height:100%;background:var(--gold)}
@media(max-width:760px){.media-hero{padding-top:110px;min-height:80vh}.media-nav{align-items:flex-start}.media-nav a{max-width:45%;line-height:1.4}.feed-tools{align-items:stretch;flex-direction:column}.search input{width:100%}.media-grid{columns:2 145px;column-gap:9px}.media-card{margin-bottom:9px;border-radius:12px}.media-card-overlay{padding:30px 10px 10px}.media-card small{font-size:.7rem}.viewer[open]{display:flex;flex-direction:column}.viewer-stage{flex:1}.viewer-info{padding:18px 20px}.viewer-arrow.next{right:10px}.form-row{grid-template-columns:1fr}}
@media(max-width:760px){.festival-ornament{--size:27px!important;opacity:.58}.festival-ornament:nth-child(3n){display:none}.festival-ornament:nth-child(odd){left:-13px!important}.festival-ornament:nth-child(even){left:auto!important;right:-13px!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.festival-ornament{animation:none!important}.festival-ornament:hover .festival-glyph,.festival-ornament:focus-visible .festival-glyph{transform:scale(1.15)}}
body.upload-open{overflow:hidden}
@media(max-width:760px){.upload-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;border:0;border-radius:0;padding:0;overflow:hidden}.upload-dialog[open]{display:block}.upload-dialog form{height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:calc(74px + env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(110px,calc(34px + env(safe-area-inset-bottom))) max(20px,env(safe-area-inset-left));scrollbar-gutter:stable}.upload-dialog .dialog-close{position:fixed;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));width:52px;height:52px;background:#151109;border:2px solid var(--gold2);box-shadow:0 8px 24px rgba(0,0,0,.55);font-size:2.15rem}.upload-dialog h2{font-size:clamp(2.25rem,12vw,3.4rem);padding-right:18px}.upload-dialog label{margin:20px 0}.upload-dialog input:not([type=checkbox]){min-height:52px;padding:14px;font-size:16px}.file-picker span{display:grid;place-items:center;min-height:82px;padding:20px 14px;font-size:1rem}.consent{gap:12px!important;line-height:1.45}.consent input{width:22px;height:22px;margin:0}.upload-dialog [data-turnstile]{max-width:100%;overflow:hidden}.upload-dialog .status{line-height:1.45}.upload-dialog .primary{position:sticky;z-index:4;bottom:max(12px,env(safe-area-inset-bottom));display:block;width:100%;min-height:54px;margin-top:22px;box-shadow:0 0 0 8px #07150f,0 12px 30px rgba(0,0,0,.5)}}
.card-like{position:absolute!important;z-index:3;top:12px;left:12px;background:rgba(0,0,0,.58)!important}
.card-views{position:absolute!important;z-index:3;top:12px;left:82px;display:inline-flex!important;align-items:center;gap:5px;padding:9px 12px;border-radius:999px;background:rgba(0,0,0,.58);color:#fff;font-weight:800;line-height:1;white-space:nowrap;pointer-events:none}.card-views span{display:inline!important}.viewer-views{display:inline-flex!important;align-items:center;gap:6px;align-self:flex-start;padding:9px 12px;border-radius:999px;background:rgba(0,0,0,.38);color:#fff;font-weight:800}.viewer-views span{color:#fff!important}.viewer-info .viewer-views{pointer-events:none}
.owner-delete{position:absolute;z-index:4;top:12px;right:12px;border:1px solid rgba(255,196,184,.72);border-radius:999px;background:rgba(61,12,8,.84);color:#ffe4df;padding:8px 12px;font-size:.76rem;font-weight:800;cursor:pointer;box-shadow:0 7px 18px rgba(0,0,0,.34)}.owner-delete:hover,.owner-delete:focus-visible{background:#a33c31;color:#fff;transform:translateY(-2px)}.owner-delete:disabled{opacity:.72;cursor:wait}.media-card:has(.owner-delete) .video-badge{top:54px}
.media-card{animation:media-arrive .45s ease both}.media-card img,.media-card video{transition:transform .45s ease}.media-card:hover img,.media-card:hover video{transform:scale(1.025)}button:focus-visible,a:focus-visible,input:focus-visible,.media-card:focus-visible{outline:3px solid var(--gold2);outline-offset:3px}@keyframes media-arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* Reflective gold framing for every uploaded photo and video. */
.media-card{border:1px solid transparent;background:linear-gradient(#0a2117,#0a2117) padding-box,linear-gradient(125deg,rgba(255,248,207,.98),#936314 27%,#f4dc87 51%,#69430e 76%,rgba(255,246,193,.94)) border-box;box-shadow:0 16px 32px rgba(0,0,0,.42),0 0 20px rgba(215,183,95,.42),0 0 42px rgba(240,219,145,.2);filter:drop-shadow(0 10px 18px rgba(210,165,47,.2))}
.media-card img,.media-card video{background:radial-gradient(circle at 50% 35%,#173d2b 0,#081710 68%,#030806 100%)}
.video-badge{border-color:var(--gold);box-shadow:0 0 14px rgba(232,199,105,.28)}
.media-card:hover,.media-card.is-audible{box-shadow:0 20px 38px rgba(0,0,0,.46),0 0 27px rgba(240,219,145,.68),0 0 58px rgba(215,183,95,.36);transform:translateY(-3px)}

.featured-media{width:min(1220px,100%);display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:4px auto 28px;text-align:left}.featured-group{min-width:0;border:1px solid var(--line);border-radius:22px;background:rgba(0,0,0,.2);padding:18px}.featured-group h2{margin:0 0 14px;color:var(--gold2);font:500 clamp(1.2rem,2.2vw,1.8rem)/1.12 var(--serif);letter-spacing:-.02em}.featured-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.featured-card{position:relative;min-width:0;aspect-ratio:4/5;border:1px solid transparent;border-radius:14px;overflow:hidden;cursor:pointer;background:linear-gradient(#0a2117,#0a2117) padding-box,linear-gradient(125deg,#fff3bd,#8f6012 32%,#f1d77c 62%,#70480e) border-box;box-shadow:0 12px 26px rgba(0,0,0,.4),0 0 17px rgba(240,219,145,.4),0 0 34px rgba(215,183,95,.2);filter:drop-shadow(0 8px 14px rgba(210,165,47,.22))}.featured-card img,.featured-card video{display:block;width:100%;height:100%;object-fit:cover;background:#07140e}.featured-info{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;gap:6px;align-items:end;padding:24px 9px 9px;background:linear-gradient(transparent,rgba(0,0,0,.9));font-size:.72rem}.featured-info strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.featured-info span{flex:none;color:var(--gold2);font-weight:800}.featured-card:hover,.featured-card.is-audible{box-shadow:0 17px 32px rgba(0,0,0,.46),0 0 24px rgba(240,219,145,.7),0 0 48px rgba(215,183,95,.38);transform:translateY(-3px)}.featured-card:hover img,.featured-card:hover video{transform:scale(1.035)}
@media(max-width:900px){.featured-media{grid-template-columns:1fr}.featured-group h2{text-align:center}.featured-card{aspect-ratio:1/1.1}}
@media(max-width:480px){.featured-group{padding:12px}.featured-grid{gap:7px}.featured-info{padding:20px 6px 7px;font-size:.62rem}.featured-info strong{display:none}}

/* Fast gallery rendering and unlimited-length captions. */
.festival-canopy{contain:strict}.festival-ornament{will-change:auto}
.media-card{content-visibility:auto;contain-intrinsic-size:320px 420px}
.media-card small{display:-webkit-box;overflow:hidden;color:rgba(255,255,255,.8);line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.viewer-info{overflow:auto}.viewer-caption{margin:10px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--cream);line-height:1.6}
.upload-dialog textarea{width:100%;min-height:130px;padding:13px;border:1px solid var(--line);border-radius:10px;resize:vertical;background:rgba(255,255,255,.06);color:#fff;font:inherit;line-height:1.5}
@media(max-width:760px){.upload-dialog textarea{min-height:150px;padding:14px;font-size:16px}}

/* Full-screen, interactive photography viewer. */
body.viewer-open{overflow:hidden}
.viewer{inset:0!important;width:100vw!important;max-width:none!important;height:100vh!important;height:100dvh!important;max-height:none!important;margin:0!important;border:0!important;border-radius:0!important;background:#020402!important}
.viewer[open]{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px)}
.viewer-stage{position:relative;overflow:hidden;min-width:0;min-height:0;touch-action:none}
.viewer-photo-frame{position:absolute;inset:0;display:grid;place-items:center;overflow:auto;overscroll-behavior:contain;cursor:zoom-in}
.viewer-photo{display:block!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;transform:scale(var(--viewer-zoom,1));transform-origin:center;transition:transform .18s ease;user-select:none;-webkit-user-select:none}.viewer-photo.is-zoomed{max-width:none!important;max-height:none!important;cursor:zoom-out}
.viewer-zoom-controls{position:absolute;z-index:7;left:50%;bottom:22px;display:flex;align-items:center;gap:7px;transform:translateX(-50%);padding:7px;border:1px solid var(--line);border-radius:999px;background:rgba(3,12,8,.84);box-shadow:0 9px 30px rgba(0,0,0,.5);backdrop-filter:blur(12px)}
.viewer-zoom-controls button{min-width:42px;height:42px;padding:0 12px;border:1px solid rgba(240,219,145,.35);border-radius:999px;background:rgba(255,255,255,.08);color:var(--cream);font-weight:900;cursor:pointer}.viewer-zoom-controls button:hover{background:var(--gold2);color:var(--ink)}.viewer-zoom-controls span{min-width:54px;text-align:center;color:var(--gold2);font-size:.8rem;font-weight:900}
.viewer-caption-overlay{position:absolute;z-index:6;left:50%;bottom:78px;width:min(760px,calc(100% - 44px));max-height:74px;overflow:hidden;transform:translateX(-50%);padding:16px 20px;border:1px solid rgba(240,219,145,.52);border-radius:16px;background:linear-gradient(180deg,rgba(2,9,6,.76),rgba(2,9,6,.94));color:var(--cream);text-align:left;line-height:1.55;cursor:pointer;box-shadow:0 14px 46px rgba(0,0,0,.54);backdrop-filter:blur(13px);transition:max-height .28s ease,background .28s ease}
.viewer-caption-overlay:after{content:"Tocar para leer completo";display:block;margin-top:5px;color:var(--gold2);font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.viewer-caption-overlay.is-open{max-height:min(70vh,620px);overflow:auto;background:rgba(2,9,6,.94)}.viewer-caption-overlay.is-open:after{content:"Tocar para minimizar"}
@media(max-width:760px){.viewer[open]{display:flex;flex-direction:column}.viewer-stage{flex:1;min-height:0}.viewer-info{display:none}.viewer-arrow{top:45%;width:42px}.viewer-arrow.next{right:10px}.viewer-caption-overlay{bottom:72px;width:calc(100% - 28px);max-height:68px;padding:13px 15px}.viewer-caption-overlay.is-open{max-height:55vh}.viewer-zoom-controls{bottom:14px}.viewer-zoom-controls button{min-width:38px;height:38px;padding:0 9px}.viewer .dialog-close{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}}

/* Full-screen captions for both photographs and videos. */
.viewer[open]{display:block}
.viewer-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.viewer-stage .viewer-video{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;background:#000}
.viewer-info{position:absolute;z-index:8;top:14px;left:14px;width:min(310px,calc(100% - 150px));padding:12px 14px;border:1px solid rgba(240,219,145,.28);border-radius:14px;background:rgba(2,9,6,.48);backdrop-filter:blur(10px);pointer-events:none}
.viewer-info .like{pointer-events:auto}.viewer-arrow.next{right:10px}
.viewer-caption-overlay{display:grid;gap:6px;bottom:max(76px,calc(58px + env(safe-area-inset-bottom)));width:min(820px,calc(100% - 44px));max-height:min(32vh,210px);overflow:auto;padding:14px 20px;border-color:rgba(240,219,145,.44);background:linear-gradient(180deg,rgba(2,9,6,.48),rgba(2,9,6,.68));box-shadow:0 14px 46px rgba(0,0,0,.42);opacity:1;transition:opacity .24s ease,transform .24s ease,max-height .28s ease,background .28s ease}
.viewer-caption-overlay strong{display:block;color:var(--gold2);font-size:.73rem;letter-spacing:.09em;text-transform:uppercase}.viewer-caption-overlay span{display:block;white-space:pre-wrap;overflow-wrap:anywhere;color:#fff9e8;font-size:clamp(.92rem,1.6vw,1.08rem);line-height:1.55}
.viewer-caption-overlay.is-hidden{opacity:0;transform:translate(-50%,18px);pointer-events:none}
.viewer-caption-overlay:after{content:"Tocar el comentario para expandir · Tocar la foto o video para ocultar"}.viewer-caption-overlay.is-open{max-height:min(70vh,620px);background:rgba(2,9,6,.84)}.viewer-caption-overlay.is-open:after{content:"Tocar para reducir · Tocar la foto o video para ocultar"}
@media(max-width:760px){.viewer-info{display:none}.viewer-caption-overlay{bottom:max(70px,calc(58px + env(safe-area-inset-bottom)));width:calc(100% - 24px);max-height:min(30vh,180px);padding:12px 14px}.viewer-caption-overlay.is-open{max-height:58vh}.viewer-caption-overlay:after{font-size:.62rem}.viewer-arrow{z-index:7}}
