:root{--ink:#234436;--muted:#59675b;--line:#dcded0;--paper:#efefe5;--accent:#806331;--blue:#657b58;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#faf8f2;font-size:16px}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:5px}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #af7f36;outline-offset:4px}header{max-width:1320px;margin:auto;padding:30px 48px;display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:15px;align-items:center;text-decoration:none;font:23px Georgia,serif;white-space:nowrap}.monogram{border:1px solid #b49358;border-radius:50%;width:49px;height:49px;display:grid;place-items:center;font-size:19px}.brand-caption{display:block;font:10px Arial,sans-serif;letter-spacing:2.5px;margin-top:7px}nav{display:flex;gap:29px;align-items:center}nav a{font-size:14px;text-decoration:none;padding:12px 0;border-bottom:2px solid transparent}nav a:hover,nav a[aria-current]{border-color:var(--accent)}main{min-height:calc(100vh - 260px)}.home{max-width:1152px;margin:auto;padding:58px 40px 64px}.intro{text-align:center;margin:0 0 32px}.eyebrow{font-size:12px;letter-spacing:3px;font-weight:600;text-transform:uppercase;color:var(--accent);margin:0 0 16px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(43px,6vw,76px);line-height:1.07;letter-spacing:-2px;margin-bottom:18px}h2{font-size:32px;line-height:1.2}h3{font-size:24px}.lead{color:var(--muted);line-height:1.8;font-size:17px;max-width:610px;margin:0 auto}.video-wrap{background:var(--ink);padding:12px;box-shadow:0 16px 44px #23443612}.video-placeholder{min-height:350px;aspect-ratio:2.22;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:1px solid #ffffff2b;padding:28px;color:#fff;background:radial-gradient(ellipse at 50% 100%,#315269 0,transparent 75%)}.video-placeholder .initial{font:52px Georgia,serif;border-bottom:1px solid #b49c73;padding:0 17px 20px;margin-bottom:24px}.video-placeholder h2{font-size:27px;margin-bottom:10px}.video-placeholder p{color:#faf8f2;font-size:15px;max-width:440px;line-height:1.7;margin-bottom:0}.video-wrap video{width:100%;max-height:650px;display:block;background:#192d23}.video-caption{display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;margin:17px 0 40px;color:var(--muted)}.ways{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:32px;gap:34px}.way{position:relative}.way+.way{border-left:1px solid var(--line);padding-left:32px}.way .number{color:var(--accent);font-size:12px;letter-spacing:1px}.way h2{font-size:24px;margin:13px 0 10px}.way p{font-size:15px;color:var(--muted);line-height:1.7;min-height:51px}.way a{font-size:14px;font-weight:600}.page{max-width:1152px;margin:auto;padding:65px 40px 80px}.page-head{max-width:700px;margin-bottom:42px}.page h1{font-size:52px}.page .lead{margin:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start}.form-card{padding:30px;background:var(--paper);border-top:3px solid var(--ink)}.form-card h2{font-size:26px;margin-bottom:24px}label{display:block;font-size:14px;font-weight:600;margin:0 0 9px}input:not([type=checkbox]),textarea{width:100%;padding:13px 14px;background:#fff;border:1px solid #a7ad98;border-radius:3px;color:var(--ink)}textarea{resize:vertical;min-height:170px;line-height:1.6}.field{margin-bottom:22px}.hint,.counter{font-size:13px;color:var(--muted);line-height:1.6;margin:8px 0 0}.counter{text-align:right}.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:14px;line-height:1.6;margin:22px 0}.check input{width:18px;height:18px;margin:3px 0 0;flex-shrink:0;accent-color:var(--ink)}.button{display:inline-block;text-decoration:none;background:var(--ink);border:1px solid var(--ink);border-radius:3px;color:#fff;padding:13px 21px;line-height:1.35;font-size:14px;font-weight:600}.button:hover{background:#365b45}.button:disabled{opacity:.55;cursor:wait}.button.secondary{background:transparent;color:var(--ink);border-color:#a7ad98}.status{font-size:14px;line-height:1.6;margin:16px 0 0}.status:empty{display:none}.status.error{color:#9a2828}.status.success{color:#20563d}.privacy{font-size:13px;line-height:1.7;color:var(--muted);margin-top:16px}.empty{padding:32px 0;border-top:1px solid var(--line);color:var(--muted);line-height:1.75}.empty h3{color:var(--ink);margin-bottom:10px}.entry{border-top:1px solid var(--line);padding:25px 0}.entry p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.entry h3{overflow-wrap:anywhere}.byline{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--muted);line-height:1.6}.byline strong{color:var(--ink)}.upload-box{border:1px dashed #879578;background:#fff;padding:22px}.upload-box input{padding:0;border:0}.photo-guide{padding-top:8px}.photo-guide p{color:var(--muted);line-height:1.8}.photo-guide h3{margin:26px 0 12px}.photo-preview{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.photo-preview img{width:100px;height:100px;object-fit:cover;border-radius:3px}.photo-preview figure{margin:0;width:100px}.photo-preview figcaption{font-size:12px;overflow-wrap:anywhere;color:var(--muted)}.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.family-login{max-width:480px}.family-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:36px}.review{border:1px solid var(--line);padding:24px;margin:16px 0}.review p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.review-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.badge{display:inline-block;font-size:12px;padding:4px 9px;background:#e4e8dc;text-transform:uppercase;letter-spacing:1px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.photo-grid img{width:100%;height:200px;object-fit:contain;background:var(--paper)}.photo-grid article{padding:18px;border:1px solid var(--line)}.photo-grid p{overflow-wrap:anywhere;line-height:1.6}footer{max-width:1224px;margin:auto;padding:30px 24px;border-top:1px solid var(--line);display:flex;gap:20px;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted)}.footer-name{font:17px Georgia,serif;color:var(--ink)}.skip{position:absolute;top:-80px;left:15px;background:white;padding:15px;z-index:10}.skip:focus{top:10px}.loading{color:var(--muted);padding:20px 0}noscript p{padding:30px}
@media(min-width:1400px){.home{padding-top:70px}}@media(max-width:920px){header{padding:24px;align-items:flex-start;flex-direction:column;gap:16px}nav{gap:24px;width:100%;flex-wrap:wrap}.split{gap:30px}.home,.page{padding-left:24px;padding-right:24px}.photo-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){header{padding:20px}.brand{font-size:21px}nav{gap:8px 20px}nav a{font-size:13px;padding:8px 0}.home{padding:36px 20px}.intro{margin-bottom:25px}h1{letter-spacing:-1px}.lead{font-size:16px}.video-placeholder{min-height:285px;aspect-ratio:auto}.video-placeholder .initial{font-size:38px}.video-placeholder h2{font-size:24px}.video-caption{font-size:10px;letter-spacing:1px}.ways{grid-template-columns:1fr;gap:25px}.way+.way{border-left:0;border-top:1px solid var(--line);padding:24px 0 0}.way p{min-height:0}.page{padding:38px 20px 60px}.page h1{font-size:42px}.split{grid-template-columns:1fr;gap:40px}.form-card{padding:24px 20px}.photo-grid{grid-template-columns:1fr}footer{margin:0 20px;padding:26px 0;flex-direction:column;align-items:flex-start;gap:12px}}@media(prefers-reduced-motion:no-preference){.button{transition:background .15s}main{animation:appear .3s ease-out}@keyframes appear{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:none}}}

/* Forest, ivory and gold, with family-provided landscape photographs. */
:root{--gold:#b49358;--fern:#657b58}
.video-placeholder{background:linear-gradient(180deg,rgba(17,36,26,.45),rgba(17,36,26,.73)),url('/pond-sunset.jpg') center 55%/cover;min-height:390px;text-shadow:0 2px 12px #0008}
.video-placeholder .initial{border-color:var(--gold)}
.video-placeholder p{color:#faf8f2}
.page-landscape{display:block;width:100%;aspect-ratio:2.4;object-fit:cover;margin:0 0 30px;border-bottom:3px solid var(--gold)}
.button.secondary:hover{background:#e4e8dc}
@media(max-width:620px){.video-placeholder{min-height:320px}.page-landscape{aspect-ratio:1.8}}
.video-placeholder{width:100%;aspect-ratio:auto;height:clamp(320px,38vw,470px);min-height:0}.split>*{min-width:0}
/* The landscape introduces the memorial; the film has its own space below. */
.memorial-hero{min-height:390px;padding:64px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(rgba(12,29,20,.64),rgba(12,29,20,.64)),url('/pond-sunset.jpg') center 55%/cover;color:#fff;text-shadow:0 2px 12px #0008;border-bottom:3px solid var(--gold);margin-bottom:32px}
.memorial-hero .eyebrow,.memorial-hero .lead{color:#fff}
.memorial-hero .eyebrow{font-size:14px}
.memorial-hero h1{color:#fff}
.video-placeholder{background:radial-gradient(ellipse at 50% 100%,#365b45,transparent 80%);height:auto;min-height:280px;text-shadow:none}
@media(max-width:620px){.memorial-hero{min-height:340px;padding:44px 20px}.video-placeholder{min-height:260px}}

.life-story{max-width:760px;margin:0 auto;padding:28px 0 34px}.life-story>h2{font-size:clamp(32px,4vw,42px);margin-bottom:12px}.life-dates{font-size:14px;color:var(--muted);line-height:1.7;margin-bottom:28px}.life-prose{font-size:17px;line-height:1.9}.life-prose p{margin-bottom:22px}.life-details{border-top:1px solid var(--line);margin-top:30px;padding-top:26px}.life-details h3{margin-bottom:14px}.life-details p{font-size:15px;line-height:1.85;color:var(--muted)}.life-details a{overflow-wrap:anywhere}.irish-blessing{margin:32px 0 12px;padding:28px 26px;border-left:3px solid var(--gold);background:var(--paper)}.irish-blessing p{font:italic 21px/1.75 Georgia,serif;margin-bottom:14px}.irish-blessing cite{font:13px Arial,sans-serif;color:var(--muted)}@media(max-width:620px){.life-story{padding-top:12px}.life-prose{font-size:16px}.irish-blessing{padding:22px 20px}.irish-blessing p{font-size:19px}}

/* Irish green header, a quiet clover, and shared memories. */
header{max-width:none;background:var(--ink);color:#faf8f2;padding:24px max(24px,calc((100vw - 1224px)/2));border-bottom:3px solid var(--gold);box-shadow:0 4px 18px #23443618;flex-wrap:wrap}
.brand{font-size:25px}.brand-caption{color:#e1d6b8}.monogram.clover{font:36px Georgia,serif;color:#d9bd80;width:56px;height:56px;border-color:#b4935880;background:#ffffff08}
nav{gap:23px;flex-wrap:wrap}nav a{color:#f5f3e9;font-size:14px}nav a:hover,nav a[aria-current]{color:#f2d79f;border-color:#d9bd80}
.gallery-section{margin-top:65px;padding-top:35px;border-top:1px solid var(--line)}.public-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.public-gallery figure{margin:0;background:var(--paper)}.public-gallery img{width:100%;height:250px;object-fit:contain;background:#e5e8dd;display:block}.public-gallery figcaption{padding:18px;font-size:15px;line-height:1.7;overflow-wrap:anywhere}.public-gallery small{display:block;color:var(--muted);margin-top:8px}.family-videos{margin-top:40px}.family-videos video{display:block;width:100%;max-height:360px;margin-top:18px;background:#192d23}.upload-progress{width:100%;accent-color:var(--ink);margin-top:20px}.video-page{max-width:1152px}.video-page .video-wrap{margin-top:30px}.video-page video{width:100%;display:block}.file-list{padding-left:20px;font-size:14px;line-height:1.8;overflow-wrap:anywhere}.way h2{margin-top:0}
@media(max-width:920px){header{padding:22px 24px;gap:16px}nav{gap:8px 22px}.public-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){header{padding:20px}nav{gap:5px 17px}.public-gallery{grid-template-columns:1fr}.gallery-section{margin-top:45px}}

.film-frame{display:block;width:100%;aspect-ratio:16/9;border:0;min-height:220px}.verification{margin-top:20px}.gallery-more{margin-top:24px}.family-toolbar{margin-top:24px}.clip-player{max-width:800px}

/* Homepage portraits, approved-photo carousel, and four ways to remember. */
.life-prose::after{content:"";display:table;clear:both}.life-portrait{float:right;width:min(42%,320px);height:auto;margin:4px 0 22px 30px;border:8px solid #fff;box-shadow:0 10px 28px #23443624;transform:rotate(1deg)}
.memory-carousel-section{clear:both;border-top:1px solid var(--line);padding:42px 0 48px}.memory-carousel-section>h2{margin-bottom:24px}.memory-carousel{background:var(--ink);padding:12px;box-shadow:0 16px 44px #23443618}.carousel-frame{margin:0}.carousel-frame img{display:block;width:100%;height:clamp(360px,52vw,650px);object-fit:contain;background:#152b22}.carousel-frame figcaption{min-height:52px;padding:16px 18px 4px;color:#f7f4ea;font-size:14px;line-height:1.6;text-align:center}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:18px;padding:14px}.carousel-controls .button.secondary{border-color:#e1d6b8;color:#fff}.carousel-controls .button.secondary:hover{background:#ffffff18}.carousel-count{min-width:70px;color:#f7f4ea;font-size:13px;text-align:center}.carousel-empty{padding:55px 28px;text-align:center;background:var(--paper)}.carousel-empty h3{margin-bottom:10px}.carousel-empty p:last-child{color:var(--muted);margin-bottom:0}.photo-guide .page-portrait{aspect-ratio:3/4;max-height:620px;object-position:center 35%}.ways{grid-template-columns:repeat(4,1fr);gap:26px}.way+.way{padding-left:26px}
@media(max-width:920px){.ways{grid-template-columns:repeat(2,1fr)}.way+.way{border-left:0;padding-left:0}.way:nth-child(even){border-left:1px solid var(--line);padding-left:26px}.way:nth-child(n+3){border-top:1px solid var(--line);padding-top:26px}}
@media(max-width:620px){.life-portrait{float:none;display:block;width:100%;max-width:360px;margin:8px auto 28px;transform:none}.memory-carousel-section{padding:34px 0 40px}.carousel-frame img{height:420px}.carousel-controls{gap:10px}.carousel-controls .button{padding:11px 14px}.ways{grid-template-columns:1fr}.way:nth-child(even){border-left:0;padding-left:0}.way:nth-child(n+2){border-top:1px solid var(--line);padding-top:24px}}
