@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-vietnamese-700-normal-DH94m5DZ.woff2) format("woff2"),url(/assets/fraunces-vietnamese-700-normal-DxawQjq2.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-latin-ext-700-normal-CanUGppC.woff2) format("woff2"),url(/assets/fraunces-latin-ext-700-normal-DuBstVeD.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-display:swap;font-weight:700;src:url(/assets/fraunces-latin-700-normal-CEOla-zY.woff2) format("woff2"),url(/assets/fraunces-latin-700-normal-DTjk5d1Q.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-ext-400-normal-Q_nF8v4l.woff2) format("woff2"),url(/assets/instrument-sans-latin-ext-400-normal-r32jotim.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-400-normal-DRC__1Mx.woff2) format("woff2"),url(/assets/instrument-sans-latin-400-normal-D1W7dsQl.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #17130e;--surface: #241e16;--text: #f2e9db;--muted: #9c8f7c;--stitch: rgba(242, 233, 219, .28);--stitch-faint: rgba(156, 143, 124, .4);--seam: rgba(0, 0, 0, 0);--grain: .055;--radius: 8px}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:Instrument Sans,sans-serif;min-height:100dvh}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:var(--grain);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}.stage{max-width:430px;margin:0 auto;padding:max(24px,env(safe-area-inset-top)) 16px 48px;display:flex;flex-direction:column;align-items:center;gap:24px}.month{font-family:Fraunces,serif;font-weight:700;font-size:clamp(28px,9vw,34px);letter-spacing:.12em;color:var(--text);animation:fadein 1.2s ease-out both}.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;width:100%}.patch{position:relative;aspect-ratio:1;background:var(--dye);border-radius:4px;box-shadow:inset 0 0 6px #00000059,0 0 0 .6px var(--seam);outline:1.5px dashed var(--stitch);outline-offset:-4px;opacity:0;animation:weavein .6s ease-out both}.patch.reduced{animation:fadein .5s ease-out both}.linework{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:4px}.patch.has-sat{filter:saturate(calc(.55 + .75 * var(--sat, .7))) brightness(calc(.82 + .24 * var(--sat, .7)))}.patch.sparse{opacity:0;filter:saturate(.55) brightness(.75)}.patch.nodata{outline-color:var(--stitch-faint);box-shadow:inset 0 0 10px #0000008c,0 0 0 .6px var(--seam)}.patch.silk:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:4px;background:linear-gradient(115deg,transparent 30%,rgba(242,233,219,.22) 50%,transparent 70%);background-size:250% 250%;animation:sheen 2.6s ease-in-out 1}.patch.touchable{cursor:pointer}.patch.touchable:active{transform:scale(.97)}.plaque{font-family:IBM Plex Mono,monospace;font-weight:500;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--muted);background:var(--surface);border-radius:var(--radius);outline:1px dashed var(--stitch-faint);outline-offset:-5px;padding:12px 20px;animation:fadein .9s ease-out both;text-align:center}.tenure{font-size:12px}.again{font-family:IBM Plex Mono,monospace;font-size:13px;letter-spacing:.08em;color:var(--muted);background:none;border:none;min-width:44px;min-height:44px;cursor:pointer;animation:fadein 1.2s ease-out both}.again:hover{color:var(--text)}.stage.story{justify-content:flex-start}.month.tuck{font-size:clamp(15px,4vw,19px);letter-spacing:.22em;opacity:.65;transition:font-size .4s ease,opacity .4s ease,letter-spacing .4s ease}.stat{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;opacity:0;transform:translateY(16px) scale(.96);transition:opacity .3s ease-out,transform .3s ease-out}.stat.in{opacity:1;transform:none}.stat.out{opacity:0;transform:translateY(-16px) scale(1.04)}.stat-num{font-family:Fraunces,serif;font-weight:700;font-size:clamp(56px,20vw,120px);line-height:1;letter-spacing:.02em;color:var(--text)}.stat-label{font-family:IBM Plex Mono,monospace;font-size:14px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.forgotten{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;background:#17130eb8;opacity:0;transition:opacity .5s ease-out}.forgotten.in{opacity:1}.forgotten.out{opacity:0}.forgotten .bloom-frame{transform:none;max-width:min(84vw,360px)}.fg-label{font-family:IBM Plex Mono,monospace;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#f2e9dbb3}.finale-lead{font-family:Fraunces,serif;font-style:italic;font-size:clamp(18px,5vw,24px);color:var(--muted);margin-bottom:4px;animation:fadein .9s ease-out both}.bloom{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#17130ed1;opacity:0;transition:opacity .5s ease-out;z-index:10}.bloom.open{opacity:1}.bloom-frame{background:#ede1ce;border-radius:var(--radius);padding:12px 12px 10px;outline:2px dashed rgba(23,19,14,.35);outline-offset:-7px;max-width:min(78vw,340px);transform:scale(.9);transition:transform .6s cubic-bezier(.2,.8,.3,1)}.bloom.open .bloom-frame{transform:scale(1)}.bloom-frame img{display:block;width:100%;border-radius:4px}.bloom-frame.text-only{max-width:min(82vw,380px);padding:22px 22px 20px}.bloom-frame.text-only figcaption{font-size:13px;line-height:1.9;padding-top:0}.bloom-frame figcaption{font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#241e16;text-align:center;padding-top:10px}@keyframes weavein{0%{opacity:0;transform:translateY(6px) scale(.92)}to{opacity:1;transform:none}}.patch.sparse{animation-name:weavein-sparse}@keyframes weavein-sparse{0%{opacity:0;transform:translateY(6px) scale(.92)}to{opacity:.6;transform:none}}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes sheen{0%{background-position:120% 120%}to{background-position:-30% -30%}}@media(prefers-reduced-motion:reduce){.patch,.patch.sparse{animation-name:fadein}.patch.silk:after{animation:none;opacity:.5}.bloom,.bloom-frame{transition-duration:.15s}}
