:root{--paper:#f5f1e9;--ink:#263d36;--muted:#616960;--line:#d2cbbd;--gold:#927448}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Georgia,'Times New Roman',serif}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #9b632c;outline-offset:5px}img{display:block;width:100%;height:auto}figure{margin:0}figcaption,.caption{font:13px/1.6 system-ui,sans-serif;color:var(--muted);padding-top:12px}.topbar{position:sticky;top:0;z-index:10;background:#f5f1e9f5;min-height:74px;display:flex;align-items:center;justify-content:space-between;padding:12px 5vw;border-bottom:1px solid var(--line);font:14px system-ui,sans-serif}.wordmark{font-family:Georgia,serif;font-size:20px;text-decoration:none}.topbar nav{display:flex;gap:15px;align-items:center}.topbar nav a{padding:10px 2px;text-decoration:none}.topbar [aria-current]{border-bottom:1px solid}.draft-note{text-align:center;background:#e9e3d7;color:#5d5c50;padding:8px 16px;font:12px/1.5 system-ui,sans-serif}.hero{max-width:1180px;margin:auto;padding:80px 45px 90px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font:11px/1.7 system-ui,sans-serif;color:var(--gold)}h1{font-size:clamp(58px,6vw,88px);font-weight:400;line-height:1.05;letter-spacing:-.045em;margin:28px 0}h1 em{font-weight:400}.dates{font:15px system-ui,sans-serif;letter-spacing:.18em;margin:30px 0}.hero-copy [data-obituary]{font-size:24px;line-height:1.45;max-width:370px}.hero-photo{padding:20px 0}.hero-photo figure{box-shadow:18px 18px 0 #e5dfd1}.hero-photo img{max-height:610px;object-fit:contain}.read-story{display:flex;align-items:center;gap:30px;font:12px/1.5 system-ui,sans-serif;letter-spacing:.03em;text-decoration:none;margin-top:38px}.read-story span{font-size:28px}.chapter-nav{max-width:1100px;margin:auto;display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;gap:20px}.chapter-nav a{font:12px/1.6 system-ui,sans-serif;text-decoration:none;padding:4px}.chapter-nav span{display:block;color:var(--gold);font-size:11px;margin-bottom:7px}.prose{font-size:20px;line-height:1.75}.prose p{margin:0 0 1.3em;white-space:pre-wrap}.prose p:last-child{margin-bottom:0}.introduction{max-width:680px;margin:100px auto;padding:0 22px}.introduction p:last-child{font-size:32px;font-style:italic;color:var(--ink)}.chapter{max-width:1160px;margin:0 auto;padding:70px 30px 95px;border-top:1px solid var(--line);scroll-margin-top:32px}.chapter-heading{margin-bottom:48px;max-width:680px}.chapter h2{font-size:clamp(34px,4vw,52px);font-weight:400;line-height:1.17;letter-spacing:-.025em;margin:15px 0}.chapter-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:85px;align-items:start}.chapter-media{display:grid;gap:40px}.chapter:nth-of-type(odd) .chapter-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.chapter:nth-of-type(odd) .chapter-media{grid-column:2;grid-row:1}.chapter:nth-of-type(odd) .prose{grid-column:1;grid-row:1}.chapter-media figure img{background:#e7e0d5}.photo-link{display:block;cursor:zoom-in}.chapter-media figure{transition:transform .55s ease,opacity .55s ease}.collage{display:grid;grid-template-columns:1fr 1fr;gap:15px;align-items:center}.collage figure:first-child{grid-column:1/-1}.collage figure:nth-child(2n){transform:rotate(-2deg)}.collage figure:nth-child(2n+1){transform:rotate(1deg)}.photo-pending{border:1px dashed #bdb4a4;min-height:220px;padding:30px;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#797363;text-align:center;background:#ede7dc}.photo-pending span{font-size:25px;font-style:italic}.photo-pending small{font:12px system-ui,sans-serif;margin-top:15px}.closing-photo{max-width:640px;margin:35px auto 130px;padding:30px}.closing-photo img{box-shadow:0 10px 35px #263d3612}.skip{position:fixed;top:-100px;left:20px;background:var(--ink);color:white;padding:12px;z-index:100}.skip:focus{top:10px}dialog{padding:55px 20px 20px;border:0;max-width:95vw;max-height:95vh;background:var(--paper)}dialog::backdrop{background:#14241de6}dialog img{max-width:86vw;max-height:80vh;width:auto;object-fit:contain}.close-viewer{position:absolute;right:15px;top:10px;background:none;border:0;font:16px system-ui;min-height:35px;cursor:pointer}.seen{animation:arrive .6s ease-out}@keyframes arrive{from{opacity:.65;translate:24px 0}to{opacity:1;translate:0 0}}@media(min-width:800px){.chapter-media{position:sticky;top:105px}}@media(max-width:800px){.hero{padding:45px 25px 60px;gap:30px;grid-template-columns:1fr 1fr}.hero h1{font-size:53px}.hero-copy [data-obituary]{font-size:20px}.chapter-nav{margin:0 25px;grid-template-columns:repeat(3,1fr)}.chapter-grid,.chapter:nth-of-type(odd) .chapter-grid{grid-template-columns:1fr;gap:35px}.chapter:nth-of-type(odd) .chapter-media,.chapter:nth-of-type(odd) .prose{grid-column:auto;grid-row:auto}.chapter-media{max-width:600px;width:100%;margin:auto}.chapter-media>figure{max-width:450px}.chapter{padding:55px 25px 65px}.chapter-heading{margin-bottom:30px}.introduction{margin:65px auto}.prose{font-size:19px;line-height:1.75}}@media(max-width:520px){.topbar{padding:10px 20px;min-height:65px}.wordmark{font-size:16px}.topbar nav{gap:10px;font-size:13px}.hero{grid-template-columns:1fr;padding:35px 25px 50px;gap:15px}.hero h1{font-size:64px}.hero-photo{max-width:320px;width:100%;margin:0 auto}.hero-photo figure{box-shadow:10px 10px 0 #e5dfd1}.hero-copy [data-obituary]{max-width:none}.read-story{margin-top:20px}.chapter-nav{gap:14px}.chapter h2{font-size:37px}.photo-pending{min-height:150px}.closing-photo{margin-bottom:70px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}@media print{.topbar,.draft-note,.chapter-nav,.read-story{display:none}.hero{padding:20px}.chapter-media{position:static}.chapter{break-before:page}.prose{font-size:12pt}.photo-pending{display:none}}
/* Long photo collections scroll naturally; a short single portrait may stay alongside the text. */
@media(min-width:800px){.chapter-media:has(>figure:nth-of-type(2)),.chapter-media:has(.collage){position:static}}

/* Photographs stay full-frame, with native touch swiping and optional controls. */
.gallery{min-width:0;width:100%}.gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#bcb4a5 transparent}.gallery-track>figure{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}.gallery-track .photo-link{height:420px;background:#e7e0d5;display:flex;align-items:center;justify-content:center}.gallery-track figure img{width:100%;height:100%;object-fit:contain}.gallery-track figcaption{padding:14px 4px 8px;min-height:60px}.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:12px}.gallery-controls[hidden]{display:none}.gallery-controls button{width:48px;height:44px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:23px;border-radius:50%;cursor:pointer}.gallery-controls button:disabled{opacity:.3;cursor:default}.gallery-count,.gallery-hint{font:12px/1.6 system-ui,sans-serif;color:var(--muted)}.gallery-hint{text-align:center;margin:12px 0 0}.chapter-steps{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;margin-top:55px;padding-top:24px;font:14px/1.6 system-ui,sans-serif}.chapter-steps a{text-decoration:none;padding:10px 0}.chapter-steps a:last-child{text-align:right}.cacha{margin-top:12px}.cacha>.eyebrow{margin-bottom:20px}
@media(max-width:800px){.gallery{max-width:500px;margin:auto}.gallery-track .photo-link{height:min(440px,105vw)}.chapter-steps{margin-top:35px}.chapter-media{gap:28px}}
@media print{.gallery-track{display:block;overflow:visible}.gallery-track>figure{margin-bottom:20px;break-inside:avoid}.gallery-track .photo-link{height:300px}.gallery-controls,.gallery-hint,.chapter-steps{display:none}.chapter-media{position:static!important}}

.chapter-steps-top{border-top:0;margin:0 0 28px;padding:0}.chapter-heading{margin-bottom:20px}

/* Opening tribute: readable dates, a gentle repeating reveal, and a closer photo frame. */
.hero .dates{font:15px/1.8 system-ui,sans-serif;letter-spacing:.02em;max-width:460px}.dates time{white-space:nowrap}.hero-copy .hero-intro{max-width:none;font-size:22px;line-height:1.5}.hero-refrain{display:block;margin-top:20px;font-size:clamp(28px,2.6vw,37px);line-height:1.35;font-style:italic;letter-spacing:-.02em}.hero-phrase{display:inline-block;white-space:nowrap;opacity:1;transform:none}.hero-refrain.reveal-ready .hero-phrase{opacity:0;transform:translateY(5px)}.hero-refrain.is-revealing .hero-phrase{animation:tribute-reveal 12s ease-in-out infinite both;animation-delay:calc(.15s + var(--order)*.85s)}@keyframes tribute-reveal{0%,100%{opacity:0;transform:translateY(5px)}16%,70%{opacity:1;transform:translateY(0)}86%{opacity:0;transform:translateY(0)}}
.hero-photo figure{border:7px solid #eee7da;border-radius:20px;overflow:hidden;box-shadow:0 16px 42px #263d3626,0 0 0 1px #cfc4b38a}.hero-photo .photo-link{aspect-ratio:1.08;overflow:hidden}.hero-photo img{height:100%;max-height:none;object-fit:cover;object-position:50% 0}.hero-photo{align-self:center}
@media(max-width:520px){.hero-copy .hero-intro{font-size:21px}.hero-refrain{font-size:30px}.hero-photo{max-width:360px}.hero-photo figure{border-width:5px;border-radius:16px}}
@media(prefers-reduced-motion:reduce){.hero-refrain .hero-phrase{animation:none!important;opacity:1!important;transform:none!important}}
@media print{.hero-refrain .hero-phrase{animation:none!important;opacity:1!important;transform:none!important}}

.hero-chapter-line{display:block;margin-top:12px;font:16px/1.6 system-ui,sans-serif;color:var(--muted)}

/* Three separate thoughts below the dates. */
.hero-copy .hero-intro{display:grid;gap:26px;margin-top:30px}.hero-intro .hero-lead{margin:0;max-width:28ch;font-size:21px;line-height:1.55}.hero-intro .hero-refrain{margin:0;max-width:none;font-size:clamp(28px,2.6vw,37px);line-height:1.4}.hero-intro .hero-chapter-line{margin:0;max-width:none;font:15px/1.6 system-ui,sans-serif;color:var(--muted)}
@media(max-width:520px){.hero-copy .hero-intro{gap:24px}.hero-intro .hero-lead{font-size:20px}.hero-intro .hero-refrain{font-size:30px}}

/* A single serif family unifies the three opening thoughts. */
.hero-intro .hero-lead,.hero-intro .hero-refrain,.hero-intro .hero-chapter-line{font-family:Georgia,'Times New Roman',serif;font-style:normal;color:var(--ink)}
.hero-intro .hero-lead{font-size:21px;font-weight:400;line-height:1.55}
.hero-intro .hero-refrain{font-size:clamp(27px,2.4vw,34px);font-weight:700;line-height:1.4;letter-spacing:-.02em}
.hero-intro .hero-chapter-line{font-size:19px;font-weight:400;line-height:1.55}
@media(max-width:520px){.hero-intro .hero-lead{font-size:20px}.hero-intro .hero-refrain{font-size:28px}.hero-intro .hero-chapter-line{font-size:18px}}

.cacha>.eyebrow{margin-bottom:8px}.collage-hint{margin:0 0 20px;font:14px/1.5 system-ui,sans-serif;color:var(--ink)}

/* A discreet place for the family's note beneath the final photograph. */
.closing-photo{margin-bottom:25px}.memorial-footer{text-align:center;padding:0 24px 80px}.memorial-note-trigger{min-height:44px;padding:10px 8px;border:0;background:none;color:var(--muted);font:15px/1.6 Georgia,serif;text-decoration:underline;text-underline-offset:5px;cursor:pointer}
#memorial-note{width:560px;max-width:calc(100vw - 32px);max-height:85vh;padding:60px 32px 30px;border-radius:14px;color:var(--ink);box-shadow:0 20px 70px #14241d40}#memorial-note h2{font:normal 30px/1.2 Georgia,serif;margin:0 0 24px}#memorial-note p{font:18px/1.7 Georgia,serif;white-space:pre-wrap;margin:0 0 18px}#memorial-note p:last-child{margin-bottom:0}#memorial-note .close-viewer{min-height:44px;color:var(--ink)}
@media print{.memorial-footer,#memorial-note{display:none}}

/* Scholarship links stay separate from the family's obituary. */
.scholarship-intro{text-align:center;margin-top:26px}.scholarship-intro p{font:17px/1.6 Georgia,serif;margin:0 0 14px}.scholarship-intro p span{font-size:14px;color:var(--muted)}.scholarship-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px;max-width:100%;padding:12px 20px;border:1px solid #a99c83;border-radius:6px;color:var(--ink);text-decoration:none;font:15px/1.5 system-ui,sans-serif;background:#eee8dc}.scholarship-button:hover{background:#e5ddcd}.scholarship-closing{max-width:640px;margin:0 auto 45px;padding:35px 25px;text-align:center;border-top:1px solid var(--line)}.scholarship-closing h2{font:normal 30px/1.25 Georgia,serif;margin:0 0 18px}.scholarship-closing p{font:18px/1.65 Georgia,serif;margin:0 0 22px}

/* Visitor contributions are collected for family review, never auto-published. */
.sharing-invitation{max-width:640px;margin:20px auto 35px;padding:30px 25px;text-align:center;border-top:1px solid var(--line)}.sharing-invitation h2{font:normal 28px/1.3 Georgia,serif;margin:0 0 14px}.sharing-invitation p{font:18px/1.6 Georgia,serif;margin:0 0 22px}
.sharing-main{max-width:680px;margin:0 auto;padding:35px 26px 80px}.sharing-back{display:inline-block;font:14px/1.6 system-ui,sans-serif;padding:10px 0;margin-bottom:28px;text-underline-offset:4px}.sharing-main h1{font:normal clamp(34px,5vw,46px)/1.15 Georgia,serif;letter-spacing:-.025em;margin:12px 0 22px}.sharing-intro,.share-success p{font:20px/1.6 Georgia,serif}.sharing-review{font:15px/1.6 system-ui,sans-serif;color:var(--muted);border-left:2px solid var(--line);padding-left:16px;margin:22px 0 30px}.form-instruction,.form-help{font:13px/1.6 system-ui,sans-serif;color:var(--muted)}.form-instruction{margin:0 0 24px}.form-field{margin-bottom:24px}.form-field>label,.photo-field legend,.photo-slot>label{display:block;font:600 15px/1.5 system-ui,sans-serif;margin-bottom:9px}.form-field input,.form-field textarea{display:block;width:100%;padding:13px 14px;border:1px solid #a9ae9e;border-radius:6px;background:#fffcf7;color:var(--ink);font:16px/1.5 system-ui,sans-serif}.form-field textarea{resize:vertical;min-height:125px}.form-field input:focus-visible,.form-field textarea:focus-visible,.photo-slot input:focus-visible,.permission-field input:focus-visible{outline:3px solid #9b632c;outline-offset:3px}.form-help{margin:8px 0 0}.photo-field{border:0;padding:0;min-width:0;margin:0 0 25px}.photo-drop{border:1px dashed #969d89;border-radius:9px;padding:20px;background:#eee9df;transition:background .15s}.photo-drop.dragging{background:#dae3d6;outline:2px solid var(--ink)}.photo-slot input{width:100%;font:14px/1.6 system-ui,sans-serif}.photo-slot input::file-selector-button{padding:10px 14px;border:1px solid #a99c83;border-radius:5px;background:#fffcf7;color:var(--ink);font:14px system-ui,sans-serif;cursor:pointer;margin-right:10px}.photo-slot+.photo-slot{margin-top:16px}.drop-hint{font:14px/1.5 system-ui,sans-serif;color:var(--muted);margin:10px 0 12px}.selected-photos{list-style:none;padding:0;margin:12px 0 0}.selected-photos li{display:flex;gap:12px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0;font:14px/1.5 system-ui,sans-serif}.selected-photos span{overflow-wrap:anywhere;min-width:0}.selected-photos button{flex-shrink:0;background:none;border:0;text-decoration:underline;color:var(--ink);min-height:44px;padding:8px;font:14px system-ui,sans-serif;cursor:pointer}.permission-field label{display:flex;gap:12px;align-items:flex-start;font:15px/1.6 system-ui,sans-serif}.permission-field input{flex-shrink:0;width:20px;height:20px;margin:2px 0 0;accent-color:var(--ink)}.permission-field .form-help{margin-left:32px}.form-error,.form-status{font:15px/1.6 system-ui,sans-serif;color:#8c3029;overflow-wrap:anywhere}.form-error:empty,.form-status:empty{display:none}.form-submit{margin-top:22px;background:var(--ink);color:var(--paper);border-color:var(--ink);cursor:pointer}.form-submit:hover{background:#344f45}.form-submit:disabled{opacity:.65;cursor:wait}.form-honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.share-success{padding:25px 0}.share-success h2{font:normal 36px/1.25 Georgia,serif}.sharing-page [hidden]{display:none!important}@media(max-width:520px){.sharing-main{padding:20px 22px 60px}.sharing-back{margin-bottom:20px}.sharing-intro{font-size:19px}.photo-drop{padding:16px}.form-submit{width:100%}.drop-hint{display:none}}@media print{.sharing-invitation{display:none}}

.hero-refrain.motion-paused .hero-phrase{animation:none;opacity:1;transform:none}.tribute-motion-control{justify-self:start;background:none;border:0;color:var(--muted);font:12px/1.5 system-ui,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px;margin:-20px 0;padding:10px 0}@media(prefers-reduced-motion:reduce){.tribute-motion-control{display:none}}@media print{.tribute-motion-control{display:none}}
@media(max-width:360px){.topbar{flex-wrap:wrap;gap:2px 16px}.topbar nav{margin-left:auto}}

#memorial-note .memorial-note-photo{margin:0 0 26px}#memorial-note .memorial-note-photo img{width:100%;max-width:100%;height:auto;max-height:none;border-radius:8px}
/* A quiet but distinct invitation to support Fernando's educational legacy. */
.scholarship-intro,.scholarship-closing{background:#e6eadf;border:1px solid #b7bea9;border-radius:14px;box-shadow:0 5px 18px #263d3609}.scholarship-intro{padding:24px 22px;margin-top:28px}.scholarship-intro p{font-size:18px;margin-bottom:19px}.scholarship-intro p span{display:inline-block;font-size:16px;font-weight:600;color:var(--ink);margin-top:6px}.scholarship-closing{width:calc(100% - 48px);padding:32px 26px}.scholarship-intro .scholarship-button,.scholarship-closing .scholarship-button{background:var(--ink);border-color:var(--ink);color:var(--paper)}.scholarship-intro .scholarship-button:hover,.scholarship-closing .scholarship-button:hover{background:#344f45}@media(max-width:520px){.scholarship-intro{padding:22px 18px}.scholarship-closing{padding:28px 22px}.scholarship-intro .scholarship-button,.scholarship-closing .scholarship-button{width:100%}}

/* Blend the supplied logo’s white background into the scholarship card without altering the original artwork. */
.scholarship-intro,.scholarship-closing{isolation:isolate}.scholarship-logo{display:block;width:120px;height:auto;max-width:100%;margin:0 auto 18px;mix-blend-mode:multiply}

/* Keepsakes sit beside their story without changing the numbered galleries. */
.inline-memory{margin:32px 0 42px;padding-bottom:24px;border-bottom:1px solid var(--line)}.inline-memory figure+figure{margin-top:24px}.inline-memory .photo-link{display:block;border-radius:8px;overflow:hidden;box-shadow:0 4px 16px #263d3612}.inline-memory img{width:100%;height:auto}.inline-memory figcaption{font:14px/1.6 system-ui,sans-serif;margin-top:10px;color:var(--muted)}.inline-memory blockquote{margin:22px 0 0;padding-left:18px;border-left:2px solid var(--line)}.inline-memory blockquote p{font:italic 19px/1.65 Georgia,serif;margin:0 0 10px}.inline-memory blockquote footer{font:14px/1.6 system-ui,sans-serif;color:var(--muted)}.inline-memory .inline-memory-hint{font:13px/1.6 system-ui,sans-serif;color:var(--muted);margin:18px 0 0}
