:root{--ink-950:#0e0f12;--ink-900:#131418;--ink-850:#181a1f;--ink-800:#1d2026;--ink-750:#23262e;--hair:#2b2f38;--hair-soft:#21242b;--paper:#ECEAE1;--paper-2:#c7c6bd;--dim:#8b8d86;--faint:#5c5f66;--lime:#cdfa3f;--lime-deep:#9fc91c;--ember:#ff6a3d;--font-display:"Archivo", system-ui, sans-serif;--font-serif:"Instrument Serif", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;min-height:100%;background:#08090b;font-family:var(--font-display);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{overflow:hidden}#root{height:100vh;height:100dvh}@media all and (display-mode:standalone){#root{height:100lvh}}input,button{font-family:inherit}button{cursor:pointer}.page-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(120% 80% at 50% -10%,#1b1d22,#0c0d10 55%,#08090b)}.page-grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;opacity:.5;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.grain-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:80;opacity:.045;mix-blend-mode:overlay;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.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.noscroll::-webkit-scrollbar{width:0;height:0}.noscroll{scrollbar-width:none}@keyframes repPulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes repRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes repFade{0%{opacity:0}to{opacity:1}}@keyframes repSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes repBar{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes repMonthNext{0%{opacity:0;transform:translate(26px)}to{opacity:1;transform:none}}@keyframes repMonthPrev{0%{opacity:0;transform:translate(-26px)}to{opacity:1;transform:none}}@keyframes mBreath{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.5);opacity:.55}}@keyframes mRise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes mFade{0%{opacity:0}to{opacity:1}}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.app-shell{position:relative;z-index:2;max-width:460px;margin:0 auto;height:100%;background:var(--ink-900);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 80px #0009}
