*{margin:0;padding:0;box-sizing:border-box;font-family:receipt-narrow,Courier New,monospace}html{overflow:hidden;height:100%}body{background:#616161;overflow:hidden;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;width:100vw;height:100vh;height:100dvh;position:fixed;top:0;right:0;bottom:0;left:0;padding-bottom:env(safe-area-inset-bottom);padding-top:env(safe-area-inset-top)}.permission-logo{position:absolute;z-index:1;top:calc(env(safe-area-inset-top,0px) + 2.5vw);left:50%;transform:translate(-50%);width:95%;max-width:95vw;height:auto;display:block;pointer-events:none}.loading{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:50000;transition:opacity .5s ease;overflow:hidden}.loading.hidden{opacity:0;pointer-events:none}.loading-box{position:relative;z-index:1;border:2px dashed rgba(255,255,255,.25);padding:14px 28px;color:#ffffffbf;font-size:14px;text-transform:uppercase;text-shadow:0 0 12px rgba(255,255,255,.4);letter-spacing:.15em}.permission{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:30000;transition:opacity .8s ease,backdrop-filter .3s ease;overflow:hidden}.grain{position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:transparent url(../img/noise-transparent.png) repeat 0 0;animation:grain-anim .2s infinite;opacity:.8;pointer-events:none;z-index:0;mix-blend-mode:screen}@keyframes grain-anim{0%{transform:translate(0)}10%{transform:translate(-5%,-5%)}20%{transform:translate(-10%,5%)}30%{transform:translate(5%,-10%)}40%{transform:translate(-5%,15%)}50%{transform:translate(-10%,5%)}60%{transform:translate(15%)}70%{transform:translateY(10%)}80%{transform:translate(-15%)}90%{transform:translate(10%,5%)}to{transform:translate(5%)}}.permission.blurred{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.permission.blurred .permission-content{opacity:.3;pointer-events:none;transition:opacity .3s ease}.permission.hidden{opacity:0;pointer-events:none}.permission-content{position:relative;z-index:1;text-align:center;max-width:340px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:0;transition:opacity .3s ease}.permission-content h1{color:#fff;font-size:22px;font-weight:400;letter-spacing:.08em;margin-bottom:48px}.note{background:none;border:2px dashed rgba(255,255,255,.25);border-radius:0;padding:14px 18px;margin-bottom:40px;text-align:center;width:100%}.note p{color:#ffffffbf;font-size:14px;line-height:1.7;text-transform:uppercase;text-shadow:0 0 12px rgba(255,255,255,.4)}.permission-btn{background:#fff;border:1px solid #fff;border-radius:0;color:#000;padding:14px 28px;font-size:14px;cursor:pointer;transition:all .3s;text-transform:uppercase}.permission-btn:hover{background:#e0e0e0;border-color:#e0e0e0;transform:translateY(-2px)}.permission-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.permission-footer{position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-size:8px;color:#fff6;white-space:nowrap;text-decoration:none;cursor:pointer}.error-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:40000;transition:opacity .5s ease}.error-modal.hidden{opacity:0;pointer-events:none}.error-modal-content{text-align:center;max-width:340px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:0;animation:slideUp .4s ease}.error-modal-content h2{color:#fff;font-size:18px;font-weight:400;letter-spacing:.08em;margin-bottom:32px;text-transform:lowercase}.card{padding:2em}.read-the-docs{color:#888}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@media (orientation:landscape){.permission{flex-direction:column;overflow-y:auto}.permission-logo{position:relative;top:auto;left:auto;transform:none;width:25%;max-width:25vw;margin:calc(env(safe-area-inset-top,0px) + 16px) auto 12px}.permission-content{padding:0 20px 16px}.note{margin-bottom:16px}}@media (prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
