:root{--bg-page:#26231c;--paper:#f6efdf;--panel:#f0e8d4;--card:#faf5e8;--warn-bg:#f0e2c8;--ink:#3a3226;--ink-soft:#5a5040;--ink-muted:#7a6f58;--ink-mono:#8a7c5e;--rule:#b8a988;--green:#4a7c46;--amber:#b0692a;--red:#a83c28;--mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg-page);color:var(--ink);justify-content:center;margin:0;padding:24px 0;font-family:Libre Caslon Text,Georgia,serif;display:flex}.app-shell{background:var(--paper);border-radius:40px;flex-direction:column;width:min(100%,430px);min-height:min(920px,100dvh);max-height:100dvh;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 9px #14120d,0 30px 60px #00000080}@media (width<=480px){body{padding:0}.app-shell{box-shadow:none;border-radius:0;min-height:100dvh}}.page{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}a{color:var(--green)}a:hover{color:#3a6236}input,button{color:inherit;font-family:inherit}.masthead{text-align:center;border-bottom:3px double var(--rule);padding-bottom:12px}.mono{font-family:var(--mono)}.btn-solid{background:var(--ink);color:var(--paper);cursor:pointer;border:none;border-radius:6px;padding:15px;font-family:inherit;font-size:15px;font-weight:700}.btn-outline{border:2px solid var(--ink);cursor:pointer;background:0 0;border-radius:6px;padding:15px;font-family:inherit;font-size:14px}@keyframes alm-spin{to{transform:rotate(360deg)}}@keyframes alm-pulse{0%,to{opacity:.4}50%{opacity:1}}
