@font-face{font-family:Literata;src:url('/fonts/literata.ttf');font-weight:200 900;font-display:swap}@font-face{font-family:Inter;src:url('/fonts/inter.ttf');font-weight:100 900;font-display:swap}
:root{--paper:#fcfaf7;--ink:#171918;--muted:#58616a;--line:#e5e7e9;--sky:#b9e0ef;--glass:rgba(255,255,255,.76);--shadow:0 20px 60px #273d5110,0 2px 6px #273d5108}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Inter,system-ui,sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit;color:inherit}button,.button{min-height:44px;border:1px solid var(--line);border-radius:999px;background:white;padding:10px 16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:transform .2s,background .2s}button:active,.button:active{transform:scale(.97)}button:disabled{opacity:.45;cursor:default}.primary,button[aria-pressed=true]{background:var(--ink);color:white}input,select,textarea{width:100%;min-height:44px;padding:10px;border:1px solid #8996a0;border-radius:12px;background:white}textarea{min-height:100px}label{display:block;margin:12px 0 6px;font-size:14px}:focus-visible{outline:3px solid #305d80;outline-offset:3px}h1,h2,h3{font-family:Literata,Georgia,serif;font-weight:400;letter-spacing:-.045em;line-height:1.2;overflow-wrap:anywhere}h1{font-size:clamp(42px,6vw,72px);margin:16px 0}h2{font-size:32px;margin:8px 0 16px}h3{font-size:24px;margin:8px 0}p{margin:12px 0}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}.muted,small{color:var(--muted)}.masthead{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;width:calc(100% - 24px);max-width:1000px;margin:16px auto;padding:12px;background:var(--glass);border:1px solid #fff;border-radius:28px;backdrop-filter:blur(20px);box-shadow:inset 0 1px 1px #fff,0 8px 24px #2b4e6a1a}.brand{font:500 23px/1.15 Literata,Georgia,serif;letter-spacing:-.06em;text-decoration:none}.brand span{font:10px/1.4 Inter,sans-serif;letter-spacing:.1em;margin-left:12px}nav{display:flex;justify-content:center;gap:4px}nav a{border-radius:999px;min-height:44px;padding:10px 16px;text-decoration:none;font-size:14px}nav a[aria-current=page]{background:var(--ink);color:white}.hero{text-align:center;padding:38px 20px 110px;background:#b9e0ef url('/paper-sky.svg') bottom/cover;margin-top:-155px;padding-top:180px}.hero p{max-width:460px;margin:16px auto}.document{position:relative;background:white;border:1px solid #f1f0ee;border-radius:24px;padding:24px;box-shadow:var(--shadow);max-width:760px;margin:24px auto}.overlap{margin-top:-64px}.login{margin:40px auto}.login button{margin-top:16px}main{padding:0 12px}main:has(.hero){padding:0}.inner{padding:0 12px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.badge{display:inline-block;font-size:11px;background:#edf2f7;color:#305d80;padding:4px 9px;border-radius:999px;white-space:nowrap}.badge.new{background:#edf3e9;color:#3e5946}.portrait{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.placeholder{aspect-ratio:4/5;border-radius:16px;background:linear-gradient(150deg,#edf2f7,#fcfaf7);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px;color:var(--muted);font-size:12px}.initials{font:400 44px Literata,serif;color:#8096a6}.portrait img{width:100%;height:100%;object-fit:cover;border-radius:16px}.gesture{touch-action:none;user-select:none;border:1px dashed #b6c6d1;border-radius:16px;text-align:center;padding:16px;font-size:12px;color:var(--muted);margin:20px 0}.content{min-height:170px;overflow-wrap:anywhere;animation:appear .25s ease-out}.content p{white-space:pre-wrap;font:18px/1.8 Literata,Georgia,serif}.content img,.class-photo{max-width:100%;height:auto;border-radius:16px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.tabs button{font-size:12px;padding:8px 12px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.actions button{font-size:13px;padding:10px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.person-link{border:1px solid var(--line);padding:16px;border-radius:16px;text-decoration:none;display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:72px}.person-link span{overflow-wrap:anywhere}.memorial{background:#fcfaf7}.facts{padding:0;list-style:none}.facts li{padding:16px 0;border-bottom:1px solid var(--line)}.facts strong{display:block}.org-card{border-top:1px solid var(--line);padding:24px 0}.org-card dl{font-size:14px}.org-card dt{font-weight:600;margin-top:12px}.org-card dd{margin:0}.notice{border-radius:16px;background:#f5f1e3;padding:16px;font-size:14px}details{margin:16px 0}summary{cursor:pointer;min-height:44px;padding:10px 0}footer{text-align:center;padding:40px 20px;font-size:12px;color:var(--muted)}.sr{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(min-width:700px){.masthead{flex-direction:row;justify-content:space-between;padding:12px 24px;border-radius:999px}.hero{margin-top:-100px;padding-top:150px}.document{padding:32px}.portrait{max-width:400px;margin:24px auto}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.login-page{min-height:100svh;background:linear-gradient(180deg,#b9e0ef 0,#deedf5 350px,#fcfaf7 750px)}.login-page .masthead{justify-content:center}.login-page .login{max-width:560px;margin:36px auto}.password-field{display:flex;gap:8px}.password-field input{min-width:0}.login small{display:block;margin-top:24px}.logout{font-size:12px;min-height:44px;padding:8px 12px}.masthead:has(.logout){gap:6px}@media(min-width:700px){.masthead:has(.logout){gap:16px}}
.dropzone{border:2px dashed #b6c6d1;border-radius:20px;padding:24px 16px;text-align:center;margin:24px 0}.dropzone .button{margin:0 auto 12px;cursor:pointer}.dropzone input{border:0;padding:8px 0;font-size:13px}.dropzone.dragging{background:#e1f1f8;border-color:#305d80}progress{width:100%;height:14px;accent-color:#305d80}.file-row{border-top:1px solid var(--line);padding:20px 0;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.file-row strong{overflow-wrap:anywhere}.file-row small{display:block;margin-top:4px}.file-row div{min-width:0}@media(min-width:700px){.file-row{flex-direction:row;justify-content:space-between;align-items:center}.file-row a{flex-shrink:0}}

/* Matching glass entrance for the album and Michael's personal sign-in. */
.immersive-login{color-scheme:dark;color:#f4f6f5;background:radial-gradient(ellipse at 90% 0,#93714880,transparent 65%),radial-gradient(ellipse at 0 70%,#4c728878,transparent 65%),#14202a;min-height:100svh}.immersive-login .masthead{background:#ffffff0c;border-color:#ffffff28;box-shadow:inset 0 1px 0 #ffffff30;backdrop-filter:blur(24px)}.immersive-login .brand{font-family:Inter,system-ui,sans-serif;font-size:20px;letter-spacing:-.04em}.immersive-login .document{margin-top:clamp(40px,12vh,120px);background:linear-gradient(145deg,#ffffff25,#ffffff09),#24313a88;border-color:#ffffff3b;box-shadow:inset 0 1px 0 #ffffff25,0 30px 70px #0003;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border-radius:30px;padding:28px}.immersive-login h1{font-family:Inter,system-ui,sans-serif;font-size:44px;font-weight:550;letter-spacing:-.055em}.immersive-login .eyebrow,.immersive-login small,.immersive-login footer{color:#c3cbd0}.immersive-login input{background:#ffffff0c;border-color:#ffffff40;color:#fff}.immersive-login button{background:#ffffff17;border-color:#ffffff30;color:white}.immersive-login .primary{background:#f0f1ed;color:#172028;border-color:#fff}.immersive-login #login-description{color:#d3d9dd}.immersive-login .login button{margin-top:12px}.immersive-login .password-field button{margin-top:0}.immersive-login footer{font-size:11px}
