:root{--paper: #c4cfa1;--light: #8b9a6b;--shade: #4f5f3f;--ink: #1f2a1a;--font-display: "Press Start 2P", monospace;--font-body: "Pixelify Sans", monospace;--unit: 8px;--pad: 16px;--border: 2px solid var(--ink);--t-year: 48px;--t-title: 20px;--t-button: 12px;--t-body: 15px;--t-caption: 12px}[data-theme=dusty-rose]{--paper: #e6d3d3;--light: #b58a8f;--shade: #6e4a52;--ink: #2a1c20}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ink);color:var(--ink);font-family:var(--font-body);font-size:var(--t-body);line-height:1.5;-webkit-font-smoothing:none;-moz-osx-font-smoothing:unset;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.screen{position:relative;width:100%;max-width:430px;min-height:100dvh;margin:0 auto;background:var(--paper);display:flex;flex-direction:column;padding:calc(var(--pad) + env(safe-area-inset-top)) var(--pad) calc(var(--pad) + env(safe-area-inset-bottom));overflow:hidden}@media (min-width: 431px){.screen{min-height:780px;height:100dvh;max-height:900px;margin-top:max(0px,calc((100dvh - 900px)/2));border-left:var(--border);border-right:var(--border)}}.scanlines:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;background:repeating-linear-gradient(to bottom,rgba(31,42,26,.1) 0,rgba(31,42,26,.1) 1px,transparent 1px,transparent 3px)}.display{font-family:var(--font-display);line-height:1.5}.year{font-family:var(--font-display);font-size:var(--t-year);line-height:1}.caption{font-size:var(--t-caption);color:var(--shade)}.btn{font-family:var(--font-display);font-size:var(--t-button);line-height:1.5;width:100%;min-height:48px;padding:12px 14px;background:var(--light);color:var(--ink);border:var(--border);border-radius:0;text-align:left;cursor:pointer}.btn:active,.btn.is-selected{background:var(--ink);color:var(--light)}.btn.is-dim{background:var(--paper);color:var(--shade)}.btn:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.frame{border:var(--border);padding:2px;background:var(--paper)}.frame>.inner{border:1px solid var(--ink);padding:12px}@keyframes riseUp{0%{transform:translateY(40%)}to{transform:translateY(0)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.blink{animation:blink 1s steps(1) infinite}@media (prefers-reduced-motion: reduce){.blink{animation:none}}
