@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Libre+Caslon+Display&display=swap";:root{font-family:DM Sans,sans-serif;color:#24352f;background:#f6f4ef;font-synthesis:none;--ink:#24352f;--muted:#6f7974;--sage:#6e837a;--sage-dark:#405a50;--line:#dddcd5;--paper:#fffefa}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{color:inherit}.app-shell{min-height:100vh;background:#f6f4ef}.topbar{min-height:92px;padding:20px clamp(24px,6vw,96px);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:#fffefaeb}.brand{display:flex;gap:12px;align-items:center;color:var(--sage-dark);text-decoration:none}.brand>span{font:21px/1 Libre Caslon Display,serif}.brand small{display:block;margin-top:6px;font:9px DM Sans,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.week-label{display:flex;gap:9px;align-items:center;font-size:13px;color:var(--muted)}.intro{padding:72px clamp(24px,10vw,152px) 66px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.intro:after{content:"";position:absolute;width:440px;height:440px;right:-140px;top:-180px;border:1px solid rgba(64,90,80,.15);border-radius:50%;box-shadow:0 0 0 70px #405a5009,0 0 0 140px #405a5006;pointer-events:none}.eyebrow,.section-heading span{margin:0 0 14px;color:var(--sage);text-transform:uppercase;letter-spacing:.18em;font-weight:600;font-size:11px}.intro h1{max-width:850px;margin:0;font:400 clamp(42px,5.7vw,76px)/1.04 "Libre Caslon Display",serif;letter-spacing:-.025em;color:#293c34}.intro>p:not(.eyebrow){max-width:610px;margin:25px 0 0;color:var(--muted);line-height:1.7;font-size:16px}.search-field{display:block;width:min(100%,430px);margin-top:38px}.search-field span{display:block;margin-bottom:8px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sage-dark)}.search-field input{width:100%;height:52px;padding:0 17px;border:1px solid #cacdc6;border-radius:2px;background:var(--paper);color:var(--ink);outline:none;transition:.2s}.search-field input:focus{border-color:var(--sage);box-shadow:0 0 0 3px #6e837a21}.obituaries{padding:62px clamp(24px,6vw,96px) 96px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;max-width:1220px;margin:0 auto 30px}.section-heading span{display:block;margin-bottom:9px}.section-heading h2{margin:0;font:400 34px/1.1 Libre Caslon Display,serif}.section-heading>p{margin:0;font-size:13px;color:var(--muted)}.card-grid{max-width:1220px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.obituary-card{min-height:260px;padding:26px;display:grid;grid-template-columns:128px 1fr;grid-template-rows:1fr auto;gap:8px 25px;text-align:left;border:1px solid var(--line);border-radius:3px;background:var(--paper);cursor:pointer;box-shadow:0 8px 30px #293c340a;transition:.2s}.obituary-card:hover{transform:translateY(-3px);border-color:#b9c2bc;box-shadow:0 14px 40px #293c3417}.portrait{width:128px;height:154px;grid-row:1/span 2;align-self:start;overflow:hidden;display:grid;place-items:center;background:#e1e5df;color:var(--sage-dark);font:400 28px Libre Caslon Display,serif;border-radius:64px 64px 4px 4px}.portrait img{width:100%;height:100%;object-fit:cover}.card-copy>p{margin:2px 0 8px;color:var(--sage);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.16em}.card-copy h3{margin:0;font:400 27px/1.12 Libre Caslon Display,serif}.life-dates{display:block;margin-top:7px;color:var(--muted);font-size:12px}.card-meta{display:flex;gap:20px;margin-top:24px;padding-top:16px;border-top:1px solid #ecebe5;color:#53635c;font-size:12px}.card-meta span,.location,.card-action{display:flex;gap:7px;align-items:center}.location{margin-top:10px;color:var(--muted);font-size:12px}.card-action{align-self:end;color:var(--sage-dark);font-size:12px;font-weight:600}.state{max-width:1220px;min-height:260px;margin:0 auto;display:grid;place-items:center;align-content:center;text-align:center;border:1px solid var(--line);background:var(--paper)}.state h3{margin:14px 0 4px;font:400 26px Libre Caslon Display,serif}.state p{max-width:520px;margin:0;color:var(--muted);font-size:14px}.state--error{color:#764942}.loader{width:30px;height:30px;border:2px solid #d8ddd9;border-top-color:var(--sage-dark);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}footer{min-height:130px;padding:30px clamp(24px,6vw,96px);display:flex;align-items:center;gap:14px;background:#2d4139;color:#eef0ec}footer p{margin:0;font:400 18px Libre Caslon Display,serif}footer span{margin-left:auto;color:#adbbb4;font-size:11px}.demo-badge{position:fixed;right:18px;bottom:18px;z-index:4;padding:8px 12px;border-radius:30px;background:#d7b574;color:#2f2a20;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:22px;background:#16211db8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);overflow-y:auto}.modal{position:relative;width:min(100%,760px);max-height:calc(100vh - 44px);overflow-y:auto;border-radius:4px;background:var(--paper);box-shadow:0 30px 90px #0000003d}.icon-button{display:grid;place-items:center;border:0;background:transparent;cursor:pointer}.modal__close{position:absolute;z-index:2;right:15px;top:15px;width:38px;height:38px;border-radius:50%;background:#ffffffd1}.modal__hero{min-height:330px;padding:38px 50px 30px;display:flex;flex-direction:column;align-items:center;text-align:center;color:#edf2ee;background:#415d52}.portrait--large{width:120px;height:136px;margin-top:14px;grid-row:auto;border:4px solid rgba(255,255,255,.65);background:#789086;color:#fff}.modal__hero p{margin:15px 0 5px;text-transform:uppercase;letter-spacing:.18em;font-size:9px;opacity:.75}.modal__hero h2{margin:0;font:400 35px/1.05 Libre Caslon Display,serif}.modal__hero>span{margin-top:9px;font-size:12px;opacity:.75}.modal__content{padding:35px 45px 40px}.tribute{max-width:580px;margin:0 auto 30px;text-align:center;color:#66736d;font:400 20px/1.5 Libre Caslon Display,serif}.detail-loading{margin:-18px auto 18px;text-align:center;color:var(--muted);font-size:11px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.detail-grid>div{min-height:82px;padding:17px;display:flex;gap:12px;background:#fbfaf6;font-size:13px;line-height:1.4}.detail-grid .detail-grid__wide{grid-column:1/-1}.detail-grid svg{flex:0 0 auto;color:var(--sage)}.detail-grid small{display:block;margin-bottom:3px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:9px}.share-button{height:48px;margin:28px auto 0;padding:0 22px;display:flex;gap:9px;align-items:center;border:0;border-radius:2px;background:var(--sage-dark);color:#fff;font-size:12px;font-weight:600;cursor:pointer}@media(max-width:760px){.topbar{min-height:78px;padding:16px 20px}.week-label{display:none}.intro{padding:54px 22px 48px}.intro h1{font-size:clamp(38px,12vw,56px)}.intro br{display:none}.obituaries{padding:46px 18px 70px}.section-heading{align-items:flex-start}.section-heading h2{font-size:29px}.section-heading>p{margin-top:23px}.card-grid{grid-template-columns:1fr}.obituary-card{min-height:238px;grid-template-columns:96px 1fr;padding:20px;gap:8px 18px}.portrait{width:96px;height:126px}.card-copy h3{font-size:23px}.card-meta{flex-direction:column;gap:7px;margin-top:18px}footer{flex-wrap:wrap}footer span{width:100%;margin-left:38px}.modal-backdrop{padding:0;align-items:end}.modal{width:100%;max-height:94vh;border-radius:12px 12px 0 0}.modal__hero{min-height:300px;padding-inline:28px}.modal__hero h2{font-size:31px}.modal__content{padding:30px 20px 34px}.detail-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.filters-section{padding:0 clamp(24px,6vw,96px);background:#f6f4ef}.filters{max-width:1220px;margin:-28px auto 0;padding:24px;position:relative;z-index:2;display:grid;grid-template-columns:2fr repeat(4,minmax(120px,1fr)) auto;gap:14px;align-items:end;border:1px solid var(--line);border-radius:4px;background:var(--paper);box-shadow:0 14px 40px #293c3414}.filter{display:flex;min-width:0;flex-direction:column;gap:8px}.filter>span{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sage-dark)}.filter input,.filter select{width:100%;height:46px;padding:0 12px;border:1px solid #cacdc6;border-radius:2px;background:#fff;color:var(--ink);outline:none;transition:.2s}.filter input:focus,.filter select:focus{border-color:var(--sage);box-shadow:0 0 0 3px #6e837a21}.filter select:disabled{background:#f1f1ed;color:#9ca39f}.input-with-icon{position:relative}.input-with-icon svg{position:absolute;left:13px;top:14px;color:var(--sage)}.input-with-icon input{padding-left:40px}.localized-date-field{position:relative;display:block}.localized-date-input{position:relative;width:100%;height:46px;padding:0;display:block;border:1px solid #cacdc6;border-radius:2px;background:#fff;font:inherit;text-align:left;cursor:pointer;transition:.2s}.localized-date-input:focus-visible{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px #6e837a21}.localized-date-input__value{height:100%;padding:0 38px 0 12px;display:flex;align-items:center;color:var(--ink);font-size:14px;text-transform:none;letter-spacing:0;pointer-events:none}.localized-date-input>svg{position:absolute;right:12px;top:13px;color:var(--ink);pointer-events:none}.date-calendar{position:absolute;top:calc(100% + 8px);left:0;z-index:30;width:min(310px,calc(100vw - 48px));padding:14px;border:1px solid var(--line);border-radius:5px;background:#fff;box-shadow:0 18px 42px #202d282e;color:var(--ink);text-transform:none;letter-spacing:0}.date-calendar__header{display:grid;grid-template-columns:36px 1fr 36px;gap:6px;align-items:center;margin-bottom:10px}.date-calendar__header strong{text-align:center;font-size:14px;font-weight:600;text-transform:capitalize}.date-calendar__header button,.date-calendar__days button{border:0;background:transparent;color:var(--ink);cursor:pointer}.date-calendar__header button{width:36px;height:34px;border-radius:50%;font-size:24px;line-height:1}.date-calendar__header button:hover:not(:disabled),.date-calendar__days button:hover:not(:disabled){background:var(--brand-soft,#e8ece9)}.date-calendar button:focus-visible{outline:2px solid var(--brand-primary,#405a50);outline-offset:1px}.date-calendar button:disabled{opacity:.3;cursor:not-allowed}.date-calendar__weekdays,.date-calendar__days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.date-calendar__weekdays span{padding:5px 0;text-align:center;font-size:10px;font-weight:700;color:var(--muted)}.date-calendar__days>span,.date-calendar__days button{aspect-ratio:1;display:grid;place-items:center;border-radius:50%;font-size:12px}.date-calendar__days button.is-selected{background:var(--brand-primary,#405a50);color:#fff;font-weight:700}.filter-actions{display:flex;gap:8px}.filter-button{height:46px;padding:0 16px;display:flex;gap:8px;align-items:center;justify-content:center;border:1px solid transparent;border-radius:2px;font-size:11px;font-weight:600;cursor:pointer}.filter-button--primary{background:var(--sage-dark);color:#fff}.filter-button--clear{border-color:#cfd2cc;background:#fff;color:var(--sage-dark)}.filter-button:hover{filter:brightness(.96)}.filter-hint{max-width:1220px;margin:11px auto 0;color:var(--muted);font-size:11px}@media(max-width:1100px){.filters{grid-template-columns:2fr repeat(2,1fr)}.filter-actions{align-self:end}.filter-hint{padding-bottom:4px}}@media(max-width:760px){.intro{padding-bottom:58px}.filters-section{padding:0 18px}.filters{grid-template-columns:1fr 1fr;padding:18px}.filter--name,.filter-actions{grid-column:1/-1}.filter input,.filter select,.filter-button{height:50px;font-size:16px}.filter-actions .filter-button{flex:1;font-size:12px}.input-with-icon svg{top:16px}.filter-hint{line-height:1.5}}@media(max-width:480px){.filters{grid-template-columns:1fr}.filter--name,.filter-actions{grid-column:auto}.filter-actions{flex-direction:column}}.app-shell{background:var(--brand-surface,#f6f4ef);color:var(--ink)}.topbar{position:relative;border-top:5px solid var(--brand-primary,#405a50);background:var(--paper);box-shadow:0 5px 24px #141e1a09}.topbar:after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:2px;background:linear-gradient(90deg,var(--brand-primary,#405a50),var(--brand-secondary,#6e837a))}.brand{min-width:0;color:var(--brand-primary-text,var(--sage-dark))}.brand__logo{width:58px;height:52px;flex:0 0 auto;object-fit:contain;object-position:center}.brand__fallback{flex:0 0 auto;color:var(--brand-secondary-text,var(--sage-dark))}.brand small{color:var(--brand-secondary-text,var(--muted))}.week-label svg{color:var(--brand-secondary-text,var(--sage))}.intro{background:linear-gradient(118deg,var(--paper) 0%,var(--brand-surface,#f6f4ef) 58%,var(--brand-soft,#e8ece9) 100%)}.intro>*{position:relative;z-index:1}.intro:after{z-index:0;opacity:.42;border-color:var(--brand-line,var(--line));box-shadow:0 0 0 70px var(--brand-soft,#eef1ef),0 0 0 140px var(--brand-surface,#f6f4ef)}.intro h1{color:var(--ink)}.intro{text-align:center}.intro .eyebrow,.intro h1{margin-right:auto;margin-left:auto}.intro>p:not(.eyebrow){margin-right:auto;margin-left:auto}.filters-section{background:var(--brand-surface,#f6f4ef)}.filter input:focus,.filter select:focus,.localized-date-input:focus-within{border-color:var(--brand-secondary,#6e837a);box-shadow:0 0 0 3px var(--brand-soft,#e8ece9)}.input-with-icon svg,.detail-grid svg,.eyebrow,.section-heading span{color:var(--brand-secondary-text,var(--sage))}.filter-button--primary,.share-button{background:var(--brand-primary,#405a50);color:var(--brand-on-primary,#fff)}.filter-button--clear,.card-action{color:var(--brand-primary-text,var(--sage-dark))}.obituary-card:hover{border-color:var(--brand-secondary,#6e837a);box-shadow:0 14px 40px #293c3417}.portrait{background:var(--brand-soft,#e1e5df);color:var(--brand-primary-text,var(--sage-dark))}.portrait--large{border-color:#ffffffb8;background:var(--brand-secondary-deep,#6e837a);color:#fff}.loader{border-top-color:var(--brand-primary,#405a50)}.modal__hero{color:#fff;background:linear-gradient(135deg,var(--brand-primary-deep,#405a50),var(--brand-secondary-deep,#6e837a))}footer{background:linear-gradient(100deg,var(--brand-primary-deep,#2d4139),var(--brand-secondary-deep,#405a50));color:#fff}footer span{color:#fff;opacity:.72}@media(max-width:760px){.brand__logo{width:48px;height:44px}.brand>span{font-size:19px}}
