@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1e219c03c996efbd-s.2qo5md4hn_gum.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.1d9rlgtqyj_-l.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/03bda585a99c6450-s.p.32sris142tqlb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_5db8dfc6-module__nI_9nG__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_5db8dfc6-module__nI_9nG__variable{--font-display:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/da8a9dd0d68e512b-s.0n8i_inn0i2i9.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/94b4a5dc1fe84361-s.3wm_n5jv1to7s.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/ff5be760267bb4bc-s.3dkqd4mro2h3_.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/99596c30eb072d3c-s.2fp9tilo6sy14.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/e5864b32625b6bc3-s.0m7i6b77o5yxd.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/e285ad1a914469f0-s.15241mr5-1s6i.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;src:url(../media/47df9ba1c7236d3b-s.p.137759vg1sbmi.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3 Fallback";src:local(Arial);ascent-override:109.21%;descent-override:42.66%;line-gap-override:0.0%;size-adjust:93.76%}.source_sans_3_2f0e8433-module__CI4b_q__className{font-family:"Source Sans 3","Source Sans 3 Fallback";font-style:normal}.source_sans_3_2f0e8433-module__CI4b_q__variable{--font-body:"Source Sans 3", "Source Sans 3 Fallback"}
:root{--ink:#1c1712;--ink-soft:#5a4f43;--paper:#f3ebe0;--paper-deep:#e7d8c4;--rule:#c9b49a;--accent:#9b2e2e;--accent-soft:#c45a4a;--ok:#2f6b4f;--shadow:0 18px 40px #3020101f;--serif:var(--font-display), "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:var(--font-body), "Avenir Next", "Segoe UI", Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{min-height:100%;color:var(--ink);background:radial-gradient(circle at 12% 8%, #ffffff8c, transparent 40%), radial-gradient(circle at 88% 0%, #c45a4a14, transparent 35%), linear-gradient(160deg, #f7f0e6 0%, var(--paper) 45%, #eadfcf 100%);font-family:var(--sans);margin:0;padding:0}a{color:inherit;text-decoration:none}button,input{font:inherit}.shell{max-width:1120px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.nav{border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.25rem;margin-bottom:1.75rem;padding-bottom:.9rem;display:flex}.nav-brand{font-family:var(--serif);letter-spacing:.01em;align-items:center;gap:.6rem;font-size:1.35rem;display:inline-flex}.nav-mark{object-fit:cover;border-radius:.4rem;flex:none;width:2.15rem;height:2.15rem}.nav-links{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.85rem 1rem;display:flex}.nav-links a:hover{color:var(--ink)}.nav-user{color:var(--ink);font-weight:600}.nav-logout,.linkish{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}.page-title{font-family:var(--serif);margin:0 0 .35rem;font-size:clamp(2rem,4vw,3rem)}.page-sub{color:var(--ink-soft);margin:0 0 1.5rem}.login-shell{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-card{border:1px solid var(--rule);width:min(100%,420px);box-shadow:var(--shadow);background:#fffcf7e0;padding:2rem 1.75rem}.login-kicker{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin:0;font-size:.72rem}.login-title{font-family:var(--serif);align-items:center;gap:.65rem;margin:.35rem 0 .5rem;font-size:2.4rem;display:flex}.login-mark{object-fit:cover;border-radius:.45rem;flex:none;width:2.6rem;height:2.6rem}.login-copy,.login-sent,.login-hint,.muted{color:var(--ink-soft)}.login-form{gap:.85rem;margin-top:1.25rem;display:grid}.login-form label{gap:.35rem;font-size:.92rem;display:grid}.login-form input,.admin-invite input{border:1px solid var(--rule);background:#fffaf4;padding:.7rem .8rem}.login-form button[type=submit],.admin-invite button{background:var(--ink);color:#fffaf4;cursor:pointer;border:none;padding:.75rem 1rem}.login-link{color:#1a73e8;cursor:pointer;background:0 0;border:none;justify-self:start;padding:0;text-decoration:underline}.login-link:hover{color:#1558b0}.login-error{color:var(--accent);margin-top:.75rem}.yearbook-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.1rem .9rem;display:grid}.yearbook-tile{gap:.45rem;display:grid}.yearbook-photo{aspect-ratio:3/4;background:var(--paper-deep);border:1px solid var(--rule);box-shadow:var(--shadow);position:relative;overflow:hidden}.crush-badge{z-index:2;text-align:center;letter-spacing:.04em;text-transform:uppercase;color:#fff;padding:.35rem .4rem;font-size:.72rem;font-weight:700;position:absolute;bottom:0;left:0;right:0}.crush-badge.crushed{background:#2f6fed}.crush-badge.mutual{background:#2f6b4f}.yearbook-photo img{object-fit:cover;width:100%;height:100%;transition:opacity .18s;position:absolute;inset:0}.yearbook-photo .photo-silly{opacity:0}@media (hover:hover) and (pointer:fine){.yearbook-tile:hover.has-silly .photo-silly,.yearbook-tile:focus-visible.has-silly .photo-silly{opacity:1}.yearbook-tile:hover.has-silly .photo-good,.yearbook-tile:focus-visible.has-silly .photo-good{opacity:0}}.photo-placeholder{height:100%;font-family:var(--serif);color:var(--ink-soft);place-items:center;font-size:2.5rem;display:grid}.yearbook-name{font-family:var(--serif);text-align:center;font-size:1.05rem}.profile-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:1.75rem;display:grid}.profile-photo-wrap{width:100%;min-height:0;box-shadow:none;background:0 0;border:none;place-items:center;padding:0;display:grid;position:relative}.profile-photo-wrap img{object-fit:contain;width:100%;height:auto;max-height:78vh;transition:opacity .18s;display:block}.profile-photo-wrap.has-silly{isolation:isolate;cursor:pointer}.profile-photo-wrap.has-silly .photo-good,.profile-photo-wrap.has-silly .photo-silly{object-fit:contain;grid-area:1/1;width:100%;max-height:78vh}.profile-photo-wrap.has-silly .photo-silly{opacity:0}.profile-photo-wrap.has-silly.show-silly .photo-silly{opacity:1}.profile-photo-wrap.has-silly.show-silly .photo-good{opacity:0}@media (hover:hover) and (pointer:fine){.profile-photo-wrap.has-silly:hover .photo-silly{opacity:1}.profile-photo-wrap.has-silly:hover .photo-good{opacity:0}}.profile-panel{gap:1rem;display:grid}.profile-name{font-family:var(--serif);margin:0;font-size:clamp(2.2rem,4vw,3.2rem)}.profile-pronouns{color:var(--ink-soft);margin-top:-.35rem;font-size:.98rem}.profile-looking{font-size:1.05rem}.profile-meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.45rem;font-size:1.05rem;display:flex}.type-icon{width:1.35rem;height:1.35rem}.profile-quote{border-left:3px solid var(--accent);font-family:var(--serif);color:var(--ink);background:#9b2e2e0f;margin:0;padding:.7rem .9rem;font-size:1.05rem;font-style:italic;line-height:1.4;position:relative}.profile-quote p{margin:0}.profile-qa{gap:.9rem;display:grid}.q{letter-spacing:.01em;color:var(--ink);font-size:1.05rem;font-weight:700}.a{color:var(--ink-soft);margin-top:.25rem;font-size:1.05rem;line-height:1.45}.profile-sw{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:1rem;padding-top:.5rem;font-size:1.05rem;display:grid}.sw-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:.2rem;font-size:.85rem}.profile-contact{color:var(--accent-soft);gap:.45rem;font-size:1.05rem;display:grid}.admin-only-phone{color:var(--ink-soft);margin-top:.2rem;font-style:italic}.profile-reach-hosts{color:var(--ink-soft);font-style:italic}.profile-ig{color:inherit;align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.ig-icon{flex:none}.crush-box{gap:.55rem;width:100%;margin-top:1rem;display:grid}.crush-btn{color:#fff;cursor:pointer;background:#2f6fed;border:none;width:100%;padding:.85rem 1rem;font-weight:600}.crush-btn.on{opacity:.85;background:#2f6fed}.crush-btn:disabled{opacity:.5;cursor:not-allowed}.crush-meta{color:var(--ink-soft);margin:0;font-size:.95rem;line-height:1.4}.modal-backdrop{z-index:50;background:#1c171273;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--rule);width:min(100%,420px);box-shadow:var(--shadow);background:#fffaf4;padding:1.35rem 1.25rem 1.2rem}.modal-title{font-family:var(--serif);margin:0 0 .55rem;font-size:1.55rem}.modal-copy{color:var(--ink-soft);margin:0;line-height:1.45}.modal-actions{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1.15rem;display:grid}.modal-cancel,.modal-confirm{cursor:pointer;border:none;padding:.75rem .9rem;font-weight:600}.modal-cancel{border:1px solid var(--rule);color:var(--ink);background:0 0}.modal-confirm{color:#fff;background:#2f6fed}.modal-cancel:disabled,.modal-confirm:disabled{opacity:.6;cursor:not-allowed}.home-banners{gap:.75rem;margin:0 0 1.25rem;display:grid}.admirer-banner{color:#1f4fb8;background:#2f6fed1a;border:1px solid #2f6fed59;margin:0;padding:.85rem 1rem;font-weight:600}.mutual-banner{color:var(--ok);background:#2f6b4f1f;border:1px solid #2f6b4f59;margin:0 0 1.25rem;padding:.85rem 1rem}.home-banners .mutual-banner{margin:0}.matches-list{gap:.85rem;display:grid}.match-card{border:1px solid var(--rule);background:#fffcf7bf;align-items:center;gap:.85rem;padding:.75rem;display:flex}.match-card img{object-fit:cover;border:1px solid var(--rule);width:72px;height:96px}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.admin-stats div{border:1px solid var(--rule);background:#fffcf7cc;gap:.2rem;padding:.9rem;display:grid}.admin-stats strong{font-family:var(--serif);font-size:1.6rem}.admin-crush-feed{gap:.45rem;display:grid}.admin-crush-row{border:1px solid var(--rule);background:#fffcf7bf;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) 3.5rem;align-items:center;gap:.55rem .7rem;padding:.55rem .7rem;display:grid}.admin-crush-row.is-mutual{background:#2f6b4f1a;border-color:#2f6b4f59}.admin-crush-person{align-items:center;gap:.5rem;min-width:0;font-weight:700;display:flex}.admin-crush-person.end{text-align:right;justify-content:flex-end}.admin-crush-photo{background:var(--paper-deep);border:1px solid var(--rule);width:36px;height:48px;font-family:var(--serif);flex:none;place-items:center;font-size:1rem;display:grid;overflow:hidden}.admin-crush-photo img{object-fit:cover;width:100%;height:100%}.admin-crush-verb{color:var(--ink-soft);white-space:nowrap;font-size:.82rem}.admin-crush-row.is-mutual .admin-crush-verb{color:var(--ok);font-weight:700}.admin-crush-when{color:var(--ink-soft);text-align:right;font-size:.78rem}.admin-mutual-name{color:var(--ok);font-weight:700}.admin-section{margin-bottom:2rem}.admin-section h2{font-family:var(--serif);margin:0 0 .4rem}.admin-invite{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.admin-max-label{color:var(--ink-soft);align-items:center;gap:.4rem;font-size:.85rem;display:flex}.admin-email,.admin-phone{border:1px solid var(--rule);background:#fffaf4;min-width:12rem;padding:.35rem .4rem}.admin-invite input[type=number],.admin-max{border:1px solid var(--rule);background:#fffaf4;width:4.5rem;padding:.35rem .4rem}.admin-table-wrap{border:1px solid var(--rule);background:#fffcf7bf;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.92rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:.65rem .7rem}.admin-table tr.inactive{opacity:.55}.admin-toggles{gap:.35rem;display:grid}.admin-toggles label{white-space:nowrap;cursor:pointer;align-items:center;gap:.4rem;display:flex}.admin-role-btn{border:1px solid var(--rule);color:var(--ink);cursor:pointer;white-space:nowrap;text-align:left;background:#fffaf4;margin-top:.15rem;padding:.3rem .55rem;font-size:.78rem}.tiny{color:var(--ink-soft);margin-top:.2rem;font-size:.78rem}.photo-uploads{gap:.4rem;display:grid}.photo-upload button{border:1px solid var(--rule);color:var(--ink);cursor:pointer;white-space:nowrap;background:#fffaf4;padding:.3rem .55rem;font-size:.78rem;display:inline-block}.photo-upload button:hover{border-color:var(--ink-soft)}@media (max-width:820px){.profile-layout{grid-template-columns:1fr}.profile-sw,.admin-stats{grid-template-columns:1fr 1fr}.admin-crush-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"sender verb target""when when when"}.admin-crush-row>.admin-crush-person:not(.end){grid-area:sender}.admin-crush-verb{grid-area:verb}.admin-crush-row>.admin-crush-person.end{grid-area:target}.admin-crush-when{text-align:left;grid-area:when}}@media (max-width:520px){.yearbook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stats{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){.yearbook-photo img{transition:none}}
