/* Aquí Por Ti — fatherserrasong.com · final production stylesheet
   Order of the page: Overture → Invocation → The Song → The Letter → The Words → The Songwriter → El Camino → Seen around the world → For Serra Clubs & Parishes → Gratitude */
:root{--paper:oklch(.972 .012 78);--paper-2:oklch(.955 .016 76);--paper-deep:oklch(.93 .022 74);--ink:oklch(.22 .018 60);--ink-soft:oklch(.36 .02 58);--ink-faint:oklch(.55 .02 60);--rule:oklch(.84 .025 70);--vermilion:oklch(.55 .18 32);--vermilion-deep:oklch(.46 .17 30);--vermilion-soft:oklch(.66 .15 35);--ochre:var(--vermilion);--ochre-deep:var(--vermilion-deep);--gold:oklch(.8 .095 82);--gold-deep:oklch(.66 .095 76);--night:oklch(.13 .035 262);--night-2:oklch(.18 .045 258);--serif-display:"Cormorant Garamond","Garamond",serif;--serif-body:"EB Garamond","Garamond",Georgia,serif;--sans:"Outfit",-apple-system,system-ui,sans-serif;--gutter:clamp(20px,4vw,56px);--ease:cubic-bezier(.22,.61,.36,1);--band:130px;--pad:clamp(110px,15vh,190px)}
*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--serif-body);font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--vermilion);color:var(--paper)}
h1,h2,h3,h4{font-family:var(--serif-display);font-weight:400;margin:0}p{margin:0 0 1em}
a{color:var(--ochre-deep);text-decoration:none}a:hover{color:var(--vermilion)}
img{display:block;max-width:100%}figure{margin:0}button{font:inherit}
[data-scene]{--p:.5;--c:0;position:relative;isolation:isolate}
/* reveals */
.rv{opacity:0;transform:translate3d(0,30px,0);transition:opacity 1.1s var(--ease),transform 1.2s var(--ease)}.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.1s}.rv-d2{transition-delay:.2s}.rv-d3{transition-delay:.3s}.rv-d4{transition-delay:.42s}
.rv-l{opacity:0;transform:translate3d(-26px,0,0);transition:opacity 1.1s var(--ease),transform 1.2s var(--ease)}.rv-l.in{opacity:1;transform:none}
.rv-s{opacity:0;transform:scale(.95);transition:opacity 1.4s var(--ease),transform 1.6s var(--ease)}.rv-s.in{opacity:1;transform:none}
.rv-lines .ln{display:block;opacity:0;transform:translate3d(0,20px,0);transition:opacity .95s var(--ease),transform 1s var(--ease)}
.rv-lines.in .ln{opacity:1;transform:none}.rv-lines.in .ln:nth-child(1){transition-delay:.05s}.rv-lines.in .ln:nth-child(2){transition-delay:.22s}.rv-lines.in .ln:nth-child(3){transition-delay:.39s}.rv-lines.in .ln:nth-child(4){transition-delay:.56s}.rv-lines.in .ln:nth-child(5){transition-delay:.78s}
/* kit */
.wrap{max-width:1180px;margin:0 auto;padding:0 var(--gutter);position:relative;z-index:3}
.eyebrow{font-family:var(--sans);font-size:10px;font-weight:400;letter-spacing:.34em;text-transform:uppercase;display:flex;align-items:baseline;gap:12px;margin-bottom:16px}
.eyebrow .yr{font-family:var(--serif-display);font-style:italic;letter-spacing:.06em;font-size:14px;text-transform:none;opacity:.8}
.title{font-family:var(--serif-display);font-size:clamp(34px,5vw,72px);line-height:1.02;font-weight:300;text-wrap:balance}.title em{font-style:italic}
.lede{font-family:var(--serif-body);font-style:italic;font-size:clamp(18px,1.6vw,23px);line-height:1.56}
.body{font-size:17px;line-height:1.78}.body strong{font-weight:600}
.center{text-align:center}.center .eyebrow{justify-content:center}.center .lede{margin-left:auto;margin-right:auto}
.plate{position:relative;overflow:hidden;border-radius:2px;box-shadow:0 40px 90px -40px oklch(.2 .04 40/.55),0 8px 24px -12px oklch(.2 .04 40/.3)}.plate>img{width:100%;height:100%;object-fit:cover}
.plate::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,oklch(1 0 0/.06),transparent 40%,oklch(.15 .03 40/.2))}
.tiltable{transform:perspective(1300px) rotateY(var(--ty,0deg)) rotateX(var(--tx,0deg));transition:transform .5s var(--ease)}
.ornament{display:flex;align-items:center;justify-content:center;gap:14px;font-family:var(--serif-display)}.ornament::before,.ornament::after{content:"";height:1px;flex:0 0 60px;background:linear-gradient(90deg,transparent,currentColor 50%,transparent)}.ornament span{font-size:15px;letter-spacing:.4em;line-height:1}
.linkline{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;width:fit-content;padding-bottom:6px;border-bottom:1px solid currentColor;transition:gap .3s var(--ease)}.linkline:hover{gap:19px}.linkline svg{width:18px;height:18px;fill:currentColor}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:999px;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;border:1px solid oklch(.8 .095 82/.5);color:oklch(.96 .02 74);transition:background .3s,color .3s,border-color .3s,transform .3s var(--ease);cursor:pointer;background:transparent}
.btn svg{width:13px;height:13px;fill:currentColor}
.btn.primary{background:linear-gradient(150deg,var(--gold),var(--gold-deep));color:oklch(.2 .04 40);border-color:transparent}
.btn:hover{transform:translateY(-2px);border-color:var(--gold);color:var(--gold)}.btn.primary:hover{color:oklch(.15 .04 40)}
/* nav */
.topnav{position:fixed;top:0;left:0;right:0;z-index:120;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px var(--gutter);background:linear-gradient(180deg,oklch(.08 .02 35/.72),oklch(.08 .02 35/.28) 62%,transparent);backdrop-filter:blur(7px);color:oklch(.96 .02 75);transition:background .45s,color .45s,border-color .45s;border-bottom:1px solid transparent}
.topnav .brand{font-family:var(--serif-display);font-size:17px;white-space:nowrap;color:oklch(.97 .02 75)}.brand em{font-style:italic;color:var(--gold)}
.nav-links{display:flex;gap:22px;margin-left:auto;margin-right:8px}.nav-links a{font-family:var(--sans);font-size:11px;letter-spacing:.17em;text-transform:uppercase;white-space:nowrap;color:oklch(.88 .025 70/.85)}.nav-links a:hover{color:var(--gold)}
.lang-switch{display:flex;align-items:center;font-family:var(--sans);font-size:11px;letter-spacing:.18em}.lang-switch a{padding:4px 8px;color:oklch(.78 .025 70);border-bottom:1px solid transparent}.lang-switch a.is-active{color:oklch(.98 .02 75);border-bottom-color:var(--gold)}.lang-sep{opacity:.5;padding:0 2px}
.topnav.is-scrolled{background:oklch(.97 .012 78/.95);border-bottom-color:var(--rule);color:var(--ink)}.topnav.is-scrolled .brand{color:var(--ink)}.topnav.is-scrolled .brand em{color:var(--ochre-deep)}.topnav.is-scrolled .nav-links a{color:var(--ink-soft)}.topnav.is-scrolled .nav-links a:hover{color:var(--ochre-deep)}.topnav.is-scrolled .lang-switch a{color:var(--ink-faint)}.topnav.is-scrolled .lang-switch a.is-active{color:var(--ink);border-bottom-color:var(--vermilion)}
@media(max-width:900px){.nav-links{display:none}}
/* overture */
.ov{min-height:100svh;display:grid;overflow:hidden;background:oklch(.09 .022 34);color:oklch(.97 .02 70)}
.ov-bg{position:absolute;inset:-8% -4%;background:url('rose-window-cross.png') 42% center/cover;filter:saturate(1.1) contrast(1.06);transform:translate3d(0,calc(var(--p) * 60px),0) scale(calc(1.06 + var(--p) * .1));will-change:transform}
.ov-veil{position:absolute;inset:0;background:linear-gradient(96deg,oklch(.1 .025 35/.14) 0%,oklch(.1 .025 35/.28) 30%,oklch(.09 .022 35/.8) 52%,oklch(.07 .018 35/.95) 76%,oklch(.06 .015 35/.98) 100%)}
.ov-veil2{position:absolute;inset:0;background:radial-gradient(ellipse 60% 46% at 26% 44%,oklch(.72 .16 40/.2),transparent 66%),linear-gradient(180deg,oklch(.06 .02 34/.62) 0%,transparent 26%,transparent 72%,oklch(.05 .015 34/.7) 100%)}
.ov-grid{position:relative;z-index:3;min-height:100svh;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(28px,5vw,80px);padding:clamp(96px,13vh,132px) var(--gutter) clamp(92px,12vh,120px);max-width:1480px;margin:0 auto;width:100%}
.ov-left{align-self:stretch;display:flex;align-items:flex-end}
.ov-rosemark{font-family:var(--sans);font-size:9.5px;letter-spacing:.32em;text-transform:uppercase;color:oklch(.92 .04 70/.72);display:flex;align-items:center;gap:11px;flex-wrap:wrap;text-shadow:0 1px 10px oklch(.05 .02 30/.9)}.ov-rosemark .dot{width:3px;height:3px;border-radius:50%;background:var(--gold)}
.ov-right{max-width:600px;transform:translate3d(0,calc(var(--p) * -46px),0)}
.ov-eyebrow{font-family:var(--sans);font-size:9.5px;letter-spacing:.36em;text-transform:uppercase;color:oklch(.94 .04 70/.84);margin-bottom:clamp(22px,3.4vh,38px);display:flex;align-items:center;gap:13px}.ov-eyebrow i{width:34px;height:1px;background:var(--gold);display:block}
.ov-title{font-size:clamp(56px,10.5vw,148px);line-height:.9;font-weight:300;letter-spacing:-.02em;margin:0 0 clamp(18px,2.6vh,30px);text-shadow:0 4px 46px oklch(.05 .02 30/.6)}.ov-title em{font-style:italic;color:var(--gold);display:block}
.ov-deck{font-size:clamp(16px,1.4vw,20px);line-height:1.62;color:oklch(.9 .025 72/.92);max-width:520px;margin:0 0 clamp(24px,3.4vh,34px)}.ov-deck .nm{font-style:italic;color:var(--gold)}
.ov-cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:clamp(28px,4vh,44px)}
.ov-credits{display:flex;flex-wrap:wrap;gap:12px 30px}.ov-cred{display:flex;align-items:center;gap:12px}
.ov-cred img{width:46px;height:46px;border-radius:50%;object-fit:cover;object-position:center 24%;box-shadow:0 0 0 1px oklch(.7 .08 78/.5),0 0 0 4px oklch(.1 .02 34/.5)}
.ov-cred-t{display:flex;flex-direction:column;gap:2px;font-family:var(--sans)}.ov-cred-l{font-size:8px;letter-spacing:.24em;text-transform:uppercase;color:oklch(.78 .05 78/.8)}.ov-cred-n{font-family:var(--serif-display);font-style:italic;font-size:15px;color:oklch(.96 .02 74)}.ov-cred-p{font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:oklch(.72 .03 72/.8)}
.ov-scroll{position:absolute;z-index:4;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:11px;font-family:var(--sans);font-size:8.5px;letter-spacing:.3em;text-transform:uppercase;color:oklch(.86 .04 76/.8)}
.ov-scroll i{width:1px;height:46px;background:linear-gradient(180deg,var(--gold),transparent);animation:ovpulse 2.6s var(--ease) infinite}@keyframes ovpulse{0%,100%{opacity:.35;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}
@media(max-width:900px){.ov-grid{grid-template-columns:1fr;align-content:end;gap:22px;padding:104px var(--gutter) 84px}.ov-left{align-items:flex-start;order:2}.ov-right{order:1}.ov-bg{background-position:52% 30%}.ov-veil{background:linear-gradient(180deg,oklch(.09 .022 35/.62) 0%,oklch(.09 .022 35/.42) 32%,oklch(.07 .018 35/.9) 70%,oklch(.06 .015 35/.97) 100%)}}
/* invocation */
.th{background:oklch(.13 .022 36);color:oklch(.92 .02 74);padding:clamp(84px,13vh,150px) 0;overflow:hidden}
.th::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 0%,oklch(.6 .14 36/.16),transparent 70%)}
.th-in{position:relative;display:grid;grid-template-columns:minmax(220px,.6fr) 1fr;gap:clamp(36px,5.5vw,84px);align-items:center;max-width:1180px;margin:0 auto;padding:0 var(--gutter)}
.th-fig{max-width:320px}.th-fig .plate{aspect-ratio:4/4.6}.th-fig .plate img{object-position:center 16%}
.th-fig figcaption{margin-top:20px;display:flex;flex-direction:column;gap:4px;font-family:var(--sans)}.th-fig .c1{font-size:8.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}.th-fig .c2{font-family:var(--serif-display);font-style:italic;font-size:18px;color:oklch(.95 .02 74)}.th-fig .c3{font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:oklch(.7 .03 72/.8)}
.th-orn{color:var(--gold);opacity:.7;margin-bottom:clamp(26px,4vh,42px)}
.th-inv{font-family:var(--serif-display);font-size:clamp(21px,2.7vw,38px);line-height:1.34;font-weight:300;margin:0}.th-inv .ln{padding:5px 0}.th-inv em{font-style:italic;color:var(--gold)}
.th-inv .ln-final{margin-top:16px;padding-top:20px;border-top:1px solid oklch(.5 .06 76/.28)}.th-inv .sg{font-style:italic;color:var(--vermilion-soft)}
.th-prayer{margin-top:clamp(26px,4vh,40px);font-family:var(--serif-body);font-size:clamp(16px,1.35vw,19px);line-height:1.66;color:oklch(.8 .025 72);max-width:560px}.th-prayer em{font-family:var(--serif-display);font-style:italic;color:var(--gold);font-size:1.15em}
@media(max-width:820px){.th-in{grid-template-columns:1fr;gap:32px}.th-fig{max-width:280px}}
/* the song */
.song{background:linear-gradient(180deg,oklch(.13 .04 30) 0%,oklch(.16 .045 28) 40%,oklch(.12 .035 32) 100%);color:oklch(.92 .02 74);padding:clamp(92px,13vh,168px) 0 clamp(96px,13vh,170px);overflow:hidden}
.song::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 44% at 50% 0%,oklch(.6 .15 34/.2),transparent 68%)}
.song .eyebrow{color:var(--gold)}.song .title{color:oklch(.97 .02 74)}.song .title em{color:var(--gold)}.song .lede{color:oklch(.86 .03 72);max-width:660px;margin:24px auto 0}
.yt{position:relative;margin:clamp(42px,6vh,72px) auto 0;max-width:1000px;aspect-ratio:16/9;overflow:hidden;border-radius:3px;cursor:pointer;background:oklch(.1 .02 34);box-shadow:0 48px 100px -48px oklch(.05 .02 34/.9),0 8px 26px -14px oklch(.05 .02 34/.6);transform:perspective(1600px) rotateX(calc(var(--c) * -2deg));transition:transform .6s var(--ease)}
.yt img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s}.yt:hover img{transform:scale(1.03);filter:brightness(1.06)}.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.yt-ov{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(180deg,oklch(.1 .02 34/.2),oklch(.08 .02 34/.5))}
.play{width:clamp(62px,7vw,88px);height:clamp(62px,7vw,88px);border-radius:50%;display:grid;place-items:center;background:oklch(.97 .02 78/.94);color:oklch(.2 .05 32);box-shadow:0 0 0 14px oklch(.97 .02 78/.1),0 20px 50px -18px oklch(.05 .02 34/.7);transition:transform .45s var(--ease)}.yt:hover .play,.video-frame:hover .play{transform:scale(1.09)}.play svg{width:26px;height:26px;fill:currentColor;margin-left:3px}
.yt-cap,.video-caption{position:absolute;left:0;right:0;bottom:0;padding:26px clamp(18px,3vw,34px) 20px;display:flex;flex-direction:column;gap:4px;background:linear-gradient(180deg,transparent,oklch(.07 .02 34/.86));pointer-events:none}
.yt-cap .small,.video-caption .small{font-family:var(--sans);font-size:8.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}.yt-cap>span:last-child,.video-caption>span:last-child{font-family:var(--serif-display);font-style:italic;font-size:clamp(15px,1.5vw,19px);color:oklch(.96 .02 76)}
.song-sub{max-width:1000px;margin:clamp(60px,9vh,100px) auto 0}
.audio-card{display:flex;align-items:center;gap:clamp(16px,3vw,40px);flex-wrap:wrap;margin:0 0 clamp(34px,5vh,54px);padding:24px 0;border-top:1px solid oklch(.55 .07 76/.28);border-bottom:1px solid oklch(.55 .07 76/.28)}
.audio-meta{display:flex;flex-direction:column;gap:5px}.audio-meta .lb{font-family:var(--sans);font-size:8.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}.audio-title{font-family:var(--serif-display);font-size:22px;font-style:italic;color:oklch(.96 .02 74)}.audio-title .by{font-size:14px;opacity:.75;font-style:normal;font-family:var(--sans);letter-spacing:.1em}
.audio-card audio{flex:1 1 260px;min-width:220px;height:38px;filter:invert(.92) hue-rotate(180deg) saturate(.35) contrast(.9)}
.video-tabs{display:flex;margin-bottom:22px;border-bottom:1px solid oklch(.5 .06 76/.22)}
.video-tab{background:0;border:0;cursor:pointer;padding:13px 22px 14px;font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:oklch(.72 .03 74/.75);border-bottom:1px solid transparent;margin-bottom:-1px;transition:color .3s,border-color .3s}.video-tab .num{font-family:var(--serif-display);font-style:italic;letter-spacing:.06em;text-transform:none;font-size:13px;opacity:.7}.video-tab:hover{color:oklch(.92 .03 76)}.video-tab.is-active{color:var(--gold);border-bottom-color:var(--gold)}
.video-frame{position:relative;overflow:hidden;cursor:pointer;border-radius:3px;box-shadow:0 48px 100px -48px oklch(.05 .02 34/.9);aspect-ratio:16/9;background:oklch(.1 .02 34)}
.video-frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}.video-frame:hover img{transform:scale(1.03)}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-overlay{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(180deg,oklch(.1 .02 34/.24),oklch(.08 .02 34/.5))}
.video-note{margin-top:22px;font-size:14.5px;line-height:1.72;color:oklch(.78 .025 74/.9);max-width:680px}
.song .linkline{color:var(--gold);margin-top:26px}
/* the letter */
.letter{background:linear-gradient(180deg,oklch(.12 .035 32) 0,oklch(.9 .034 82) var(--band),oklch(.945 .028 82) 50%,oklch(.93 .024 78) 100%);color:var(--ink);padding:var(--pad) 0 clamp(90px,13vh,160px)}
.letter-in{position:relative;z-index:3;display:grid;grid-template-columns:minmax(260px,.86fr) 1fr;gap:clamp(38px,5.6vw,88px);align-items:center;max-width:1240px;margin:0 auto;padding:0 var(--gutter)}
.letter .eyebrow{color:var(--ochre-deep)}.letter .title em{color:var(--ochre-deep)}
.letter-plate{position:relative;transform:rotate(-1.6deg);box-shadow:0 34px 70px -30px oklch(.2 .04 40/.42),0 4px 12px -4px oklch(.2 .04 40/.2);background:var(--paper);overflow:hidden;aspect-ratio:4/3}
.letter-plate img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:sepia(.34) saturate(.84) contrast(1.05)}
.letter-plate::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,oklch(.95 .025 75/.2),oklch(.5 .04 40/.04) 50%,oklch(.3 .03 40/.14))}
.letter-intro{font-size:16px;line-height:1.74;color:var(--ink-soft);margin:22px 0 26px;padding-bottom:26px;border-bottom:1px solid var(--rule)}
.letter-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:22px;counter-reset:ll}
.letter-lines li{position:relative;padding-left:44px;counter-increment:ll}
.letter-lines li::before{content:counter(ll,upper-roman);position:absolute;left:0;top:.3em;font-family:var(--sans);font-size:9px;letter-spacing:.18em;color:var(--ochre);opacity:.85}
.letter-lines .es{display:block;font-family:var(--serif-display);font-style:italic;font-size:clamp(18px,1.7vw,23px);line-height:1.42;color:var(--ink)}.letter-lines .es mark{background:none;color:var(--vermilion-deep);font-weight:500}
.letter-lines .en{display:block;margin-top:6px;font-family:var(--sans);font-weight:300;font-size:13.5px;line-height:1.55;color:var(--ink-faint)}
.letter-attr{margin-top:30px;display:flex;align-items:center;gap:10px;font-family:var(--sans);font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint)}.letter-attr .dot{color:var(--ochre)}
.adelante{position:relative;z-index:3;max-width:760px;margin:clamp(60px,9vh,100px) auto 0;padding:clamp(28px,4vh,44px) clamp(24px,4vw,54px);text-align:center;border-top:1px solid oklch(.7 .06 60/.5);border-bottom:1px solid oklch(.7 .06 60/.5)}
.adelante p{font-family:var(--serif-display);font-style:italic;font-size:clamp(24px,3.2vw,44px);line-height:1.2;color:var(--vermilion-deep);margin:0}
.adelante .en{display:block;margin-top:16px;font-family:var(--serif-body);font-style:normal;font-size:clamp(15px,1.4vw,19px);color:var(--ink-soft);line-height:1.6}
@media(max-width:880px){.letter-in{grid-template-columns:1fr;gap:36px}}
/* lyrics */
.lyr{background:var(--paper);padding:clamp(90px,13vh,160px) 0}
.lyr .eyebrow{color:var(--ochre-deep)}.lyr .title{color:var(--ink)}.lyr .title em{color:var(--ochre-deep)}.lyr .lede{color:var(--ink-soft);max-width:600px;margin:22px auto 0}
.lyrics-grid{display:grid;grid-template-columns:1fr 1px 1fr;gap:clamp(26px,4.4vw,66px);margin-top:clamp(44px,6.5vh,76px)}
.lyrics-divider{background:linear-gradient(180deg,transparent,var(--rule) 12%,var(--rule) 88%,transparent)}
.lyrics-col h3{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--ochre-deep);margin-bottom:6px}
.lang-name{font-family:var(--serif-display);font-style:italic;font-size:24px;color:var(--ink);margin-bottom:30px;padding-bottom:16px;border-bottom:1px solid var(--rule)}
.verse{white-space:pre-line;font-size:17px;line-height:1.72;color:var(--ink-soft);margin:0 0 22px}.verse.refrain{font-style:italic;color:var(--ink)}.verse.chorus{font-family:var(--serif-display);font-size:21px;line-height:1.44;color:var(--vermilion-deep);font-style:italic}
.verse-break{height:1px;background:linear-gradient(90deg,transparent,var(--rule) 40%,var(--rule) 60%,transparent);margin:30px 0}
@media(max-width:760px){.lyrics-grid{grid-template-columns:1fr;gap:12px}.lyrics-divider{height:1px;background:linear-gradient(90deg,transparent,var(--rule),transparent);margin:34px 0}}
/* songwriter */
.sw{background:oklch(.11 .022 40);color:oklch(.9 .015 70);display:grid;grid-template-columns:minmax(320px,.92fr) 1fr;align-items:stretch;overflow:hidden}
.sw-img{position:relative;min-height:min(88vh,760px);overflow:hidden}.sw-img img{width:100%;height:100%;object-fit:cover;object-position:70% 35%;transform:scale(1.08) translate3d(0,calc(var(--c) * -40px),0)}
.sw-img::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 40%,oklch(.11 .022 40/.5) 78%,oklch(.11 .022 40) 100%)}
.sw-img figcaption{position:absolute;left:26px;bottom:22px;z-index:2;display:flex;flex-direction:column;gap:4px;text-shadow:0 1px 10px oklch(.12 .02 40/.9)}.sw-cap-l{font-family:var(--sans);font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}.sw-cap-p{font-family:var(--serif-display);font-style:italic;font-size:14px;color:oklch(.93 .02 72)}
.sw-text{padding:clamp(68px,10vh,116px) clamp(30px,5.4vw,88px);display:flex;flex-direction:column;justify-content:center;max-width:760px}
.sw-inset{display:inline-flex;align-items:center;gap:14px;padding:9px 18px 9px 9px;margin-bottom:30px;background:oklch(.2 .02 40/.55);border:1px solid oklch(.55 .07 76/.26);border-radius:999px;width:fit-content}
.sw-inset img{width:48px;height:48px;border-radius:50%;object-fit:cover;object-position:center 25%;box-shadow:0 0 0 1px var(--gold)}.sw-inset-l{display:flex;flex-direction:column;gap:3px}.sw-inset-n{font-family:var(--serif-display);font-style:italic;font-size:15.5px;color:var(--gold);line-height:1.1}.sw-inset-m{font-family:var(--sans);font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:oklch(.76 .02 70)}
.sw .eyebrow{color:var(--gold)}.sw h2{font-size:clamp(30px,3.5vw,50px);line-height:1.08;font-weight:300;color:oklch(.96 .01 70);margin:0 0 26px;text-wrap:balance}.sw h2 em{font-style:italic;color:var(--gold)}
.sw-lede{font-style:italic;font-size:18.5px;line-height:1.56;color:oklch(.85 .02 70);margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid oklch(.4 .03 70/.5)}
.sw-text p{font-size:16px;line-height:1.74;color:oklch(.82 .015 70)}.sw-text p+p{margin-top:15px}.sw-text p em{color:var(--gold)}
.sw .linkline{color:var(--gold);margin-top:32px}
@media(max-width:920px){.sw{grid-template-columns:1fr}.sw-img{min-height:64vh}.sw-img::after{background:linear-gradient(180deg,transparent 44%,oklch(.11 .022 40/.6) 80%,oklch(.11 .022 40) 100%)}}
/* el camino */
.camino{background:linear-gradient(180deg,oklch(.11 .022 40) 0,oklch(.2 .05 250) var(--band),var(--night-2) 40%,var(--night) 100%);color:oklch(.9 .02 240);padding:var(--pad) 0 clamp(96px,14vh,170px);overflow:hidden}
.stars{position:absolute;inset:0;z-index:1;opacity:.7;background-image:radial-gradient(1.4px 1.4px at 12% 18%,oklch(.98 .02 90/.9),transparent),radial-gradient(1.2px 1.2px at 78% 12%,oklch(.96 .03 84/.8),transparent),radial-gradient(1.6px 1.6px at 32% 34%,oklch(.98 .02 88/.85),transparent),radial-gradient(1.1px 1.1px at 62% 46%,oklch(.95 .03 82/.7),transparent),radial-gradient(1.5px 1.5px at 88% 40%,oklch(.98 .02 90/.8),transparent),radial-gradient(1.2px 1.2px at 8% 58%,oklch(.96 .02 86/.7),transparent),radial-gradient(1.3px 1.3px at 46% 8%,oklch(.97 .02 88/.75),transparent),radial-gradient(1.4px 1.4px at 24% 78%,oklch(.97 .02 88/.7),transparent);transform:translate3d(0,calc(var(--c) * 24px),0)}
.camino .eyebrow{color:oklch(.86 .07 214)}.camino .title{color:oklch(.97 .02 220)}.camino .title em{color:var(--gold)}.camino .lede{color:oklch(.86 .03 230);max-width:700px;margin:24px auto 0}
.mapwrap{position:relative;z-index:3;max-width:1240px;margin:clamp(48px,7vh,80px) auto 0;padding:0 var(--gutter)}
.mapstage{position:relative;border-radius:14px;overflow:hidden;background:linear-gradient(170deg,oklch(.2 .045 250/.72),oklch(.13 .035 262/.82));border:1px solid oklch(.6 .06 230/.2);box-shadow:0 40px 90px -44px oklch(.06 .02 260/.85)}
.mapstage svg{display:block;width:100%;height:auto}
.mp-land{fill:oklch(.3 .035 250);stroke:oklch(.46 .05 244/.5);stroke-width:.5}.mp-graticule{fill:none;stroke:oklch(.55 .05 236/.13);stroke-width:.5}
.mp-route{fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;filter:drop-shadow(0 0 6px oklch(.8 .1 84/.55))}.mp-route-2{fill:none;stroke:oklch(.86 .09 212);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:3 4;opacity:.85}
.mp-lit .mp-route{stroke:oklch(.93 .1 86);stroke-width:2.6}.mp-lit .mp-route-2{stroke:oklch(.9 .09 210)}.mp-bloom{filter:blur(5px)}.mp-bloom .mp-route,.mp-bloom .mp-route-2{stroke:oklch(.9 .11 86);stroke-width:6}
.mp-city{fill:oklch(.98 .02 90)}.mp-city-ring{fill:none;stroke:var(--gold);stroke-width:1;opacity:.55}.mp-mission{fill:var(--vermilion-soft);stroke:oklch(.98 .02 84/.7);stroke-width:.6}
.mp-comet-core{fill:oklch(.99 .015 90);filter:drop-shadow(0 0 6px oklch(.92 .07 88/.95))}.mp-comet-halo{pointer-events:none}
.mp-lbl{font-family:var(--sans);font-size:7.2px;letter-spacing:.16em;text-transform:uppercase;fill:oklch(.93 .03 220/.92)}.mp-yr{font-family:var(--serif-display);font-style:italic;font-size:7px;fill:oklch(.84 .07 84/.85)}
.map-legend{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:18px;font-family:var(--sans);font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:oklch(.8 .03 226/.8)}.map-legend span{display:flex;align-items:center;gap:8px}.map-legend i{width:16px;height:2px;border-radius:2px;background:var(--gold)}.map-legend i.d{background:repeating-linear-gradient(90deg,oklch(.86 .09 212) 0 4px,transparent 4px 7px)}.map-legend i.m{width:7px;height:7px;border-radius:50%;background:var(--vermilion-soft)}
@media(max-width:760px){.mp-route{stroke-width:4}.mp-route-2{stroke-width:3.4;stroke-dasharray:6 8}.mp-graticule,.mp-land{stroke-width:1}.mp-lbl{font-size:17px;letter-spacing:.1em}.mp-yr{font-size:15px}.mp-city-ring{stroke-width:2.4}@media(prefers-reduced-motion:reduce){.mp-cometg{display:none}}}
.waypoints{position:relative;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,56px) clamp(24px,3.5vw,48px);max-width:1180px;margin:clamp(64px,9vh,110px) auto 0;padding:0 var(--gutter);counter-reset:wp}
.wp{position:relative;padding-top:22px;border-top:1px solid oklch(.6 .06 230/.3);counter-increment:wp}
.wp .no{font-family:var(--serif-display);font-style:italic;font-size:13px;color:oklch(.86 .07 214);opacity:.8}.wp .no::before{content:counter(wp,upper-roman) ". "}
.wp h3{font-size:clamp(24px,2.3vw,32px);font-weight:300;line-height:1.1;color:oklch(.97 .02 220);margin:8px 0 4px}.wp h3 em{font-style:italic;color:var(--gold)}
.wp .yr{font-family:var(--sans);font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:oklch(.8 .04 220/.8);margin-bottom:14px;display:block}
.wp p{font-size:15.5px;line-height:1.72;color:oklch(.84 .025 235);margin:0}.wp p strong{color:oklch(.96 .02 230);font-weight:500}
.wp .fig{aspect-ratio:16/10;margin-bottom:18px;border-radius:2px;overflow:hidden;-webkit-mask-image:radial-gradient(ellipse 90% 90% at 50% 50%,#000 60%,transparent 100%);mask-image:radial-gradient(ellipse 90% 90% at 50% 50%,#000 60%,transparent 100%)}.wp .fig img{width:100%;height:100%;object-fit:cover}
.pivot{position:relative;z-index:3;max-width:840px;margin:clamp(70px,10vh,120px) auto 0;text-align:center}
.pivot .es{display:block;font-family:var(--serif-display);font-style:italic;font-weight:300;font-size:clamp(25px,4vw,54px);line-height:1.16;color:oklch(.97 .03 214);text-shadow:0 0 44px oklch(.2 .06 245/.7)}
.pivot .en{display:block;margin-top:20px;font-size:clamp(15px,1.6vw,21px);line-height:1.5;color:oklch(.85 .04 220/.9)}.pivot .src{display:block;margin-top:24px;font-family:var(--sans);font-size:8.5px;letter-spacing:.28em;text-transform:uppercase;color:oklch(.75 .05 214/.8)}
@media(max-width:900px){.waypoints{grid-template-columns:1fr 1fr}}@media(max-width:600px){.waypoints{grid-template-columns:1fr}}
/* seen around the world */
.seen{background:linear-gradient(180deg,var(--night) 0,oklch(.968 .014 78) var(--band),var(--paper) 100%);padding:var(--pad) 0 clamp(90px,13vh,160px)}
.seen .eyebrow{color:var(--ochre-deep)}.seen .title{color:var(--ink)}.seen .title em{color:var(--ochre-deep)}.seen .lede{color:var(--ink-soft);max-width:640px;margin:22px auto 0}
.reels{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.8vw,22px);margin-top:clamp(44px,6.5vh,76px);perspective:1600px}
.reel{position:relative;aspect-ratio:1;overflow:hidden;border-radius:3px;box-shadow:0 30px 60px -30px oklch(.2 .04 40/.5);transform-style:preserve-3d;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.reel img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}.reel:hover{transform:translateZ(30px) translateY(-6px);box-shadow:0 50px 90px -34px oklch(.2 .04 40/.55)}.reel:hover img{transform:scale(1.05)}
.reel span{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 12px;font-family:var(--sans);font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;color:oklch(.95 .02 80);background:linear-gradient(180deg,transparent,oklch(.08 .02 34/.8));opacity:0;transition:opacity .4s}.reel:hover span{opacity:1}
.seen-follow{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:center;margin-top:clamp(36px,5vh,56px)}
.seen-follow a{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);padding-bottom:5px;border-bottom:1px solid var(--rule);transition:color .3s,border-color .3s}.seen-follow a:hover{color:var(--ochre-deep);border-color:var(--ochre)}.seen-follow svg{width:15px;height:15px;fill:currentColor}
@media(max-width:820px){.reels{grid-template-columns:1fr 1fr}}
/* serra clubs & parishes */
.clubs{background:var(--paper-deep);padding:clamp(90px,13vh,160px) 0;border-top:1px solid var(--rule)}
.clubs .eyebrow{color:var(--ochre-deep)}.clubs .title{color:var(--ink)}.clubs .title em{color:var(--ochre-deep)}.clubs .lede{color:var(--ink-soft);max-width:660px;margin:22px auto 0}
.clubs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,56px);margin-top:clamp(48px,7vh,80px)}
.club{padding-top:22px;border-top:1px solid var(--rule)}
.club h3{font-family:var(--sans);font-size:9.5px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--ochre-deep);margin-bottom:18px}
.club .big{font-family:var(--serif-display);font-size:clamp(26px,2.6vw,36px);line-height:1.1;color:var(--ink);font-weight:300;margin:0 0 6px}.club .big em{font-style:italic;color:var(--vermilion-deep)}
.club .sm{font-family:var(--sans);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);display:block;margin-bottom:18px}
.club p{font-size:15.5px;line-height:1.72;color:var(--ink-soft);margin:0 0 12px}
.club .linkline{color:var(--ochre-deep);margin-top:8px;white-space:nowrap;text-transform:none;letter-spacing:.06em;font-size:12px}.club .linkline+.linkline{margin-left:22px}@media(max-width:480px){.club .linkline+.linkline{margin-left:0;display:flex}}
@media(max-width:820px){.clubs-grid{grid-template-columns:1fr;gap:34px}}
/* gratitude */
.credits{background:oklch(.13 .02 44);color:oklch(.86 .015 70);padding:clamp(84px,12vh,150px) 0 clamp(40px,6vh,60px);overflow:hidden}
.credits::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 64% 46% at 50% 0%,oklch(.6 .12 40/.16),transparent 70%)}
.credits .eyebrow{color:var(--gold)}.credits h2{font-size:clamp(28px,3.4vw,46px);font-weight:300;color:oklch(.96 .01 70);text-align:center;margin:0 0 clamp(44px,6.5vh,76px)}.credits h2 em{font-style:italic;color:var(--gold)}
.credits-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(214px,1fr));gap:clamp(28px,4vw,54px)}
.credit-block h4{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid oklch(.42 .04 70/.5)}
.credit-block p{font-family:var(--serif-display);font-size:18px;line-height:1.34;color:oklch(.93 .015 70);margin:0 0 16px}.credit-block .role{display:block;margin-top:4px;font-family:var(--sans);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:oklch(.66 .02 70);line-height:1.6}
.coda{margin-top:clamp(50px,7vh,80px);text-align:center;font-family:var(--serif-display);font-style:italic;font-size:clamp(20px,2.2vw,30px);color:var(--gold)}.coda span{display:block;margin-top:12px;font-family:var(--sans);font-style:normal;font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:oklch(.64 .02 70);line-height:1.8}
.credits-foot{margin-top:clamp(50px,7vh,86px);padding-top:26px;border-top:1px solid oklch(.32 .03 60/.6);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.credits-foot small{font-family:var(--sans);font-size:10px;letter-spacing:.12em;color:oklch(.6 .02 70)}
.social{display:flex;gap:8px}.social a{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:oklch(.72 .02 70);border:1px solid oklch(.34 .03 60/.7);transition:color .3s,border-color .3s,transform .3s var(--ease)}.social a:hover{color:var(--gold);border-color:var(--gold);transform:translateY(-3px)}.social svg{width:15px;height:15px;fill:currentColor}
/* player */
.j-player{position:fixed;z-index:118;left:clamp(14px,2.4vw,28px);bottom:clamp(14px,2.4vw,26px);display:flex;align-items:center;gap:12px;padding:9px 18px 9px 9px;border-radius:999px;background:oklch(.16 .03 38/.82);backdrop-filter:blur(14px) saturate(1.2);border:1px solid oklch(.62 .07 78/.28);box-shadow:0 18px 44px -18px oklch(.1 .03 35/.7);opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease);color:oklch(.95 .02 78)}
.j-player.is-on{opacity:1;transform:none}
.j-pbtn{width:38px;height:38px;flex:0 0 auto;border-radius:50%;border:0;cursor:pointer;background:linear-gradient(150deg,var(--gold),var(--gold-deep));color:oklch(.2 .04 40);display:grid;place-items:center;transition:transform .3s var(--ease),box-shadow .3s}.j-pbtn:hover{transform:scale(1.07);box-shadow:0 0 0 5px oklch(.8 .09 82/.16)}.j-pbtn svg{width:15px;height:15px;fill:currentColor}
.j-pbtn .ic-pause{display:none}.j-player.is-playing .ic-play{display:none}.j-player.is-playing .ic-pause{display:block}
.j-ptext{display:flex;flex-direction:column;gap:3px;min-width:0}.j-plabel{font-family:var(--sans);font-size:8px;letter-spacing:.24em;text-transform:uppercase;color:oklch(.8 .06 80/.85)}.j-ptitle{font-family:var(--serif-display);font-style:italic;font-size:14.5px;line-height:1;white-space:nowrap}
.j-ptrack{width:clamp(60px,11vw,120px);height:2px;border-radius:2px;background:oklch(.7 .03 78/.26);overflow:hidden;cursor:pointer;flex:0 0 auto}.j-ptrack i{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--gold),var(--vermilion-soft))}
@media(max-width:600px){.j-ptitle{display:none}.j-ptrack{width:56px}.j-player{padding:8px 14px 8px 8px;gap:9px}}
/* lightbox */
.lightbox{position:fixed;inset:0;z-index:200;display:none;place-items:center;padding:clamp(20px,5vw,60px);background:oklch(.08 .015 40/.94);backdrop-filter:blur(10px);cursor:zoom-out}.lightbox.is-open{display:grid}
.lightbox img{max-width:100%;max-height:88vh;object-fit:contain;box-shadow:0 40px 100px -30px oklch(0 0 0/.8)}
.lightbox-close{position:absolute;top:clamp(14px,3vw,28px);right:clamp(14px,3vw,28px);width:44px;height:44px;border-radius:50%;border:1px solid oklch(.5 .03 70/.5);background:oklch(.14 .02 40/.7);color:oklch(.9 .02 70);font-size:24px;line-height:1;cursor:pointer}
@media(max-width:760px){:root{--band:95px;--pad:clamp(90px,13vh,150px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rv,.rv-l,.rv-s,.rv-lines .ln{transition-duration:.01ms!important}}

/* series link under El Camino */
.series{position:relative;z-index:3;text-align:center;margin:clamp(34px,5vh,52px) auto 0;font-family:var(--sans);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:oklch(.8 .04 220/.85)}
.series a{color:var(--gold);border-bottom:1px solid oklch(.8 .095 82/.5);padding-bottom:3px}.series a em{font-family:var(--serif-display);font-size:15px;letter-spacing:.04em;text-transform:none}.series a:hover{color:oklch(.9 .09 84)}
/* reels: keep the words of vertical posts inside the square */
.reel img[src*="azulejo"]{object-position:center 52%}.reel img[src*="camino-petra"]{object-position:center 18%}
/* November — his birth month: the overture rests on Petra */
.is-nov .ov-bg{background-image:url('petra-sunset.png');background-position:center 58%;filter:saturate(1.05) contrast(1.04)}

.series-mark{display:block;margin:0 auto 18px;width:74px;height:74px;color:var(--gold);filter:drop-shadow(0 0 14px oklch(.8 .1 84/.35))}
.series a{white-space:nowrap}
