html,body { margin:0; height:100%; background:#f6f5f0; color:#173c31; font-family:system-ui,sans-serif; }
#loading { box-sizing:border-box; display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:100%; padding:24px; text-align:center; }
.mark { background:#0f5132; color:#edf3d8; border-radius:20px; width:76px; height:76px; font:italic bold 60px Georgia,serif; }
h1 { font-size:32px; letter-spacing:-1px; margin-bottom:8px; }
p { max-width:440px; line-height:1.6; overflow-wrap:anywhere; }
.small { font-size:13px; color:#51655c; }
button { font:inherit; border:0; border-radius:14px; background:#0f5132; color:white; padding:14px 24px; cursor:pointer; }
button:focus-visible { outline:3px solid #a3bc72; outline-offset:4px; }
[hidden] { display:none!important; }
/* Flutter 3.41's button labels are transparent DOM text with inline overflow:
   visible. Long fallback-font labels can intercept neighboring controls even
   outside their reported rectangles. Clip only text-only button leaves: keep
   their full accessible names and never clip semantic containers/descendants.
   Canvas rendering (and the native app) is unaffected. */
flt-semantics[role="button"]:not(:has(*)) { overflow:clip!important; }
