:root{--paper:#faf7f1;--ink:#322442;--muted:#71667b;--purple:#663399;--pink:#cc3366;--line:#e4dce8}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.6 Inter,sans-serif}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}:focus-visible{outline:3px solid #006699;outline-offset:4px}[hidden]{display:none!important}nav{max-width:1200px;margin:auto;padding:26px 32px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-size:25px;font-weight:700;letter-spacing:.18em;line-height:1.3}.brand span{display:block;letter-spacing:.04em;font-size:10px;font-weight:500;color:var(--muted);margin-top:4px}.nav-note{font-size:12px;color:var(--muted)}main{max-width:1136px;margin:auto;padding:0 28px}.hero{padding:72px 0 66px;text-align:center}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--purple)}h1,h2,h3{font-family:Fraunces,serif;font-weight:500;line-height:1.14}h1{font-size:clamp(40px,6vw,72px);margin:18px 0 24px;letter-spacing:-.035em}h1 em{color:var(--purple);font-weight:500}h2{font-size:34px;margin:10px 0}h3{font-size:25px;margin:14px 0}.hero>p:not(.eyebrow){color:var(--muted);line-height:1.9}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;gap:22px;border-radius:999px;padding:13px 24px;border:1px solid transparent;text-decoration:none;font-weight:600;font-size:14px}.primary{background:var(--purple);color:white}.primary:hover{background:#532582}.secondary{background:transparent;border-color:var(--line);color:var(--ink)}.hero .primary{margin-top:20px}.next{padding:25px 30px;background:#eee6f6;border-radius:16px;display:flex;align-items:center;gap:24px;margin-bottom:56px}.next .date-tile{font-size:36px;font-family:Fraunces,serif;color:var(--purple);min-width:74px}.next .date-tile small{display:block;font:600 11px Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase}.next h3{margin:3px 0;font-size:27px}.next p{margin:0;font-size:12px;color:var(--muted)}.next .primary{margin-left:auto}.section-heading{display:flex;align-items:end;justify-content:space-between}.section-heading>p{color:var(--muted);font-size:13px}.filters{display:flex;gap:18px;margin:26px 0 30px}label{display:block;font-weight:500;font-size:13px}label>span{display:block;margin-bottom:7px}.search-label{flex:1}input,textarea,select{border:1px solid var(--line);border-radius:10px;background:#fffdf9;color:var(--ink);padding:12px 14px}input,textarea{width:100%}textarea{resize:vertical}select{min-width:150px}.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.person-card{position:relative;display:block;text-decoration:none;background:#fffdf9;border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:14px;padding:24px;transition:transform .2s,box-shadow .2s}.person-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px #3224420c}.avatar{width:54px;height:54px;background:var(--soft);color:var(--accent);border-radius:50%;display:grid;place-items:center;font:600 19px Fraunces,serif}.card-month{position:absolute;right:22px;top:25px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.person-card .date{font-size:13px;color:var(--muted);margin:0}.card-link{display:flex;justify-content:space-between;margin-top:30px;font-size:12px;font-weight:600;color:var(--accent)}.color-0{--accent:#cc3366;--soft:#fce9ef;--card:#cc3366;--card-ink:white}.color-1{--accent:#8c6800;--soft:#fff4c9;--card:#ffce34;--card-ink:#322442}.color-2{--accent:#663399;--soft:#eee6f6;--card:#663399;--card-ink:white}.color-3{--accent:#006699;--soft:#e2f0f7;--card:#006699;--card-ink:white}.color-4{--accent:#327333;--soft:#e7f4e7;--card:#66cc66;--card-ink:#233624}footer{text-align:center;padding:64px 24px 30px;color:var(--muted);font-size:12px}.back{display:inline-block;margin-top:30px;text-decoration:none;font-size:13px;color:var(--muted)}.person-hero{text-align:center;padding:20px 0 34px}.person-hero h1{font-size:clamp(40px,6vw,64px)}.person-hero p{color:var(--muted)}.person-hero .birthday{color:var(--purple);font-weight:600}.person-actions{display:flex;justify-content:center;gap:12px;margin-top:28px;flex-wrap:wrap}#shareStatus{font-size:12px;min-height:20px}.wall-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:26px 0}.wall-heading h2{font-size:27px}.wall-heading select{margin-left:10px;min-width:90px}.wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 25px;padding:18px 8px}.tag{background:var(--card);color:var(--card-ink);padding:24px 20px 20px;position:relative;border-radius:5px;box-shadow:0 12px 22px #32244218;align-self:start;transform:rotate(-2deg)}.tag:nth-child(even){transform:rotate(2deg)}.tag::before{content:'';position:absolute;top:-6px;left:50%;width:11px;height:11px;background:#ffce34;border:2px solid #c49b24;border-radius:50%;box-shadow:0 2px 3px #0003}.tag .message{font:500 25px/1.4 Caveat,cursive;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 18px}.tag .author{font-size:11px;text-align:right;overflow-wrap:anywhere}.read-more{border:0;background:none;color:inherit;padding:5px 0;text-decoration:underline;font-size:12px;font-weight:600}.empty{grid-column:1/-1;text-align:center;padding:45px;color:var(--muted);border:1px dashed var(--line);border-radius:14px}.status{text-align:center;margin:50px 20px;color:var(--muted)}.retry{display:block;margin:auto}.archive-note{background:#eee6f6;border-radius:10px;padding:16px}dialog{border:0;border-radius:18px;background:var(--paper);color:var(--ink);width:min(560px,calc(100% - 28px));padding:34px;max-height:90dvh;overflow:auto;box-shadow:0 30px 100px #1c0d3c40}dialog::backdrop{background:#211432aa}dialog h2{font-size:30px}.close{position:absolute;right:17px;top:10px;font-size:28px;border:0;background:none;color:var(--muted)}dialog label{margin:18px 0}dialog label input,dialog label textarea{margin-top:7px}dialog small{color:var(--muted);font-size:11px}#formError{color:#a22245;font-size:13px}#readerMessage{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.8}#readerAuthor{text-align:right;font-weight:600;overflow-wrap:anywhere}#composeHint{color:var(--muted);font-size:13px}@media(max-width:850px){.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wall{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){nav{padding:20px}.nav-note{display:none}main{padding:0 20px}.hero{padding:44px 0}.hero>p br{display:none}.next{padding:20px;gap:15px;flex-wrap:wrap;margin-bottom:35px}.next .primary{margin-left:0;width:100%}.filters{flex-direction:column}.filters select{width:100%}.people-grid{grid-template-columns:1fr}.section-heading>p{max-width:85px;text-align:right}.wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 16px;padding:14px 0}.tag{padding:18px 14px}.tag .message{font-size:23px}.wall-heading{align-items:start;gap:12px}.wall-heading h2{font-size:24px}.wall-heading label{white-space:nowrap}dialog{padding:26px}.person-hero h1{overflow-wrap:anywhere}}@media(max-width:360px){.wall{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
