*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--ivory:#fffdf7;--cream:#fbf5e6;--pearl:#fff;--gold-deep:#9a7320;--gold:#c9a227;--gold-bright:#e9c766;--gold-pale:#fbecc0;--ink:#3a2e14;--ink-soft:#7a6840;--ruby:#c0283b;--ruby-pale:#f0c2c8;--live-green:#3aa35b;--gold-foil:linear-gradient(135deg, #8a6416 0%, #e9c766 22%, #fff4cf 38%, #c9a227 55%, #f3d985 72%, #9a7320 100%);--gold-foil-text:linear-gradient(135deg, #6e4c0c 0%, #b8901f 28%, #e9c766 44%, #a8811c 58%, #d9b44a 74%, #6e4c0c 100%);--font-display:"Shrikhand", Georgia, serif;--font-script:"Pinyon Script", cursive;--font-body:"Josefin Sans", system-ui, -apple-system, sans-serif;--ease-out:cubic-bezier(.16, 1, .3, 1)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(circle at 20% 0%, #e9c76640, transparent 45%), radial-gradient(circle at 100% 60%, #e9c7662e, transparent 40%), repeating-linear-gradient(45deg, #c9a2270d 0 2px, transparent 2px 14px), var(--ivory);background-attachment:fixed;min-height:100vh;overflow-x:hidden}.app{flex-direction:column;align-items:center;gap:1rem;max-width:460px;min-height:100vh;margin:0 auto;padding:1.5rem 1.15rem 2rem;display:flex}.app-main{flex-direction:column;gap:1rem;width:100%;display:flex}.marquee{text-align:center;background:var(--pearl);border-radius:22px;width:100%;padding:1.15rem .75rem .9rem;position:relative;box-shadow:0 6px 20px #9a73202e}.marquee:before{content:"";background:var(--gold-foil);-webkit-mask-composite:xor;pointer-events:none;border-radius:22px;padding:4px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.crown{filter:drop-shadow(0 2px 2px #9a732059);margin-bottom:-2px;font-size:1.6rem;display:block}.app-title{font-family:var(--font-display);background:var(--gold-foil-text);color:#0000;filter:drop-shadow(0 2px #fff)drop-shadow(0 3px #6e4c0c8c);-webkit-background-clip:text;background-clip:text;font-size:2.4rem;font-weight:400;line-height:1.05}.app-subtitle{font-family:var(--font-script);color:var(--gold-deep);margin-top:2px;font-size:1.4rem}.stones{justify-content:center;gap:7px;margin:.5rem 0 .1rem;display:flex}.stone{width:11px;height:11px;box-shadow:0 0 0 1.5px var(--gold), 0 1px 2px #00000040;background:radial-gradient(circle at 32% 30%,#fff 0 18%,#0000 26%),conic-gradient(from 20deg,#e8eef7,#b9c4d6,#fff,#a9b6cc,#f2f5fb,#c4cee0,#e8eef7);border-radius:50%}.stone-gold{background:radial-gradient(circle at 32% 30%,#fff 0 18%,#0000 26%),conic-gradient(from 20deg,#f7e2a0,#c9a227,#fff4cf,#b08a24,#f3d985,#c9a227,#f7e2a0)}.sparkle{color:#fff;pointer-events:none;text-shadow:0 0 6px #fff, 0 0 10px var(--gold-bright);font-size:14px;animation:2.4s ease-in-out infinite twinkle;position:absolute}.sparkle-2{font-size:10px;animation-delay:.8s}.sparkle-3{font-size:12px;animation-delay:1.6s}.card{background:var(--pearl);border:1.5px solid var(--gold-pale);border-radius:18px;width:100%;padding:1rem;position:relative;box-shadow:0 4px 14px #9a73201f}.card-studded{box-shadow:0 0 0 3px var(--gold), 0 6px 18px #9a732033;border:none;margin:6px 0;padding:1.4rem 1.15rem}.card-studded:before{content:"";pointer-events:none;background:radial-gradient(circle at 50% 50%, #fff 0 1.6px, #dfe6f1 2.2px, #aab6c9 3.2px, var(--gold) 3.8px, transparent 4.6px) 0 0 / 11px 11px, var(--gold-foil);-webkit-mask-composite:xor;border-radius:26px;padding:7px;position:absolute;inset:-9px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.status-bar{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.status-indicator-group{background:var(--gold-pale);border-radius:999px;align-items:center;gap:7px;padding:5px 11px;display:inline-flex}.status-label{letter-spacing:.06em;text-transform:uppercase;color:var(--gold-deep);font-size:.72rem;font-weight:700}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-connected{background:var(--live-green);box-shadow:0 0 6px var(--live-green);animation:2s ease-in-out infinite pulse}.status-connecting,.status-reconnecting{background:var(--gold);animation:1s ease-in-out infinite pulse}.status-disconnected{background:#b9ad92}.status-error{background:var(--ruby)}.location-text{color:var(--ink-soft);white-space:nowrap;font-size:.8rem;font-weight:600}.location-error{color:var(--ruby);white-space:normal}.idle-card{text-align:center;padding:1.15rem 1rem 1.3rem}.idle-text{color:var(--ink-soft);font-size:.95rem;line-height:1.45}.record{background:radial-gradient(circle, var(--ruby) 0 15%, #fff4cf 15.5% 17%, transparent 17.5%), repeating-radial-gradient(circle, #c9a227 0 1.5px, #e9c766 1.5px 3px), var(--gold);width:128px;height:128px;box-shadow:0 0 0 4px #fff, 0 0 0 6px var(--gold), 0 8px 18px #9a732059;border-radius:50%;margin:.9rem auto 0;animation:6s linear infinite spin;position:relative}.record:after{content:"";background:conic-gradient(from 0deg, transparent 0 20%, #ffffff8c 25%, transparent 30% 70%, #ffffff73 75%, transparent 80%);border-radius:50%;position:absolute;inset:0}.record-label{z-index:1;font-family:var(--font-display);color:#fff4cf;place-items:center;font-size:.75rem;display:grid;position:absolute;inset:0}.report-section{flex-direction:column;align-items:center;gap:.6rem;display:flex}.report-btn{cursor:pointer;width:100%;font-family:var(--font-display);color:#fff;text-shadow:0 2px #8a6416,0 0 12px #fff9;box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--gold), 0 8px 0 #7a5812, 0 12px 22px #9a732073;transition:transform .15s var(--ease-out), box-shadow .15s var(--ease-out), filter .2s;background:radial-gradient(circle,#ffffffe6 0 1.2px,#0000 1.8px) 0 0/16px 16px,linear-gradient(135deg,#b08a24,#e9c766 45%,#c9a227 60%,#8a6416);border:none;border-radius:20px;margin-bottom:8px;padding:1.15rem .9rem;font-size:1.4rem;display:block}.report-btn small{font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px #8a6416;margin-top:4px;font-size:.72rem;font-weight:700;display:block}.report-btn:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.report-btn:active:not(:disabled){box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--gold), 0 2px 0 #7a5812, 0 4px 10px #9a732066;transform:translateY(6px)}.report-btn:disabled{cursor:not-allowed}.report-btn-disabled{filter:grayscale(.7)brightness(1.1);opacity:.6}.report-btn-success{text-shadow:0 2px #1f5a32;box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--gold), 0 8px 0 #1f5a32, 0 12px 22px #2f7d4759;background:radial-gradient(circle,#ffffffe6 0 1.2px,#0000 1.8px) 0 0/16px 16px,linear-gradient(135deg,#2f7d47,#4fb06c 50%,#2f7d47)}.report-btn-error{text-shadow:0 2px #6e1420;box-shadow:0 0 0 3px #fff, 0 0 0 5px var(--gold), 0 8px 0 #6e1420, 0 12px 22px #c0283b59;background:radial-gradient(circle,#ffffffe6 0 1.2px,#0000 1.8px) 0 0/16px 16px,linear-gradient(135deg,#9a1e2e,#d2384b 50%,#9a1e2e)}.report-hint{color:var(--ink-soft);text-align:center;font-size:.85rem}.elvis-alert{text-align:center;width:100%;box-shadow:0 0 0 3px var(--gold), 0 0 0 7px #fff, 0 0 0 9px var(--gold-bright), 0 12px 30px #9a732066;animation:alert-in .5s var(--ease-out) both;background:radial-gradient(circle at 50% 0,#fff4cf,#0000 60%),#fff;border-radius:22px;margin:6px 0;padding:1.4rem 1rem 1.25rem;position:relative}.alert-bulbs{pointer-events:none;background:radial-gradient(circle, #fff7d6 0 2.5px, var(--gold-bright) 3px, transparent 4.5px) 0 0 / 15px 15px;-webkit-mask-composite:xor;border-radius:16px;padding:6px;animation:1s steps(2,end) infinite bulbs;position:absolute;inset:7px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.alert-dismiss{z-index:1;color:var(--gold-deep);cursor:pointer;background:0 0;border:none;font-size:1.1rem;position:absolute;top:12px;right:14px}.alert-dismiss:hover{color:var(--ink)}.alert-kicker{font-family:var(--font-script);color:var(--ruby);font-size:1.65rem}.alert-title{font-family:var(--font-display);background:var(--gold-foil-text);color:#0000;filter:drop-shadow(0 2px #6e4c0c73);-webkit-background-clip:text;background-clip:text;margin:4px 0 8px;font-size:1.9rem;font-weight:400;line-height:1.05}.alert-message{color:var(--ink-soft);font-size:.95rem}.alert-coords{background:var(--cream);border:1.5px dashed var(--gold);border-radius:12px;flex-direction:column;margin-top:.75rem;padding:8px 14px;font-size:.82rem;display:inline-flex}.alert-coord-label{letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);font-size:.7rem;font-weight:700}.alert-coord-value{font-weight:600}.alert-coord-detail{opacity:.75;font-size:.75rem}.account-panel{text-align:center;flex-direction:column;gap:.6rem;display:flex}.account-title{font-family:var(--font-display);color:var(--gold-deep);font-size:1.3rem;font-weight:400}.account-note{color:var(--ink-soft);font-size:.92rem;line-height:1.5}.account-error{color:var(--ruby);font-size:.9rem;font-weight:600}.account-signed-in{color:var(--ink-soft);font-size:.9rem}.account-signed-in strong{color:var(--ink)}.account-destination{background:var(--gold-pale);color:var(--gold-deep);border-radius:10px;align-self:center;padding:6px 12px;font-size:.92rem;font-weight:700}.envelope{filter:drop-shadow(0 4px 6px #9a73204d);font-size:3.2rem;display:block}.account-form{flex-direction:column;gap:.6rem;margin-top:.3rem;display:flex}.account-input{width:100%;font-family:var(--font-body);color:var(--ink);background:var(--cream);border:2px solid var(--gold-pale);transition:border-color .2s var(--ease-out), box-shadow .2s var(--ease-out), background .2s;border-radius:12px;outline:none;padding:.8rem .9rem;font-size:1rem}.account-input::placeholder{color:#b9ad92}.account-input:focus{border-color:var(--gold);background:#fff;box-shadow:0 0 0 4px #e9c7664d}.account-delete-confirm{border-top:1.5px solid var(--gold-pale);flex-direction:column;gap:.4rem;padding-top:.6rem;display:flex}.divider{color:var(--gold);align-items:center;gap:10px;font-size:.75rem;display:flex}.divider:before,.divider:after{content:"";background:linear-gradient(90deg, transparent, var(--gold), transparent);flex:1;height:1.5px}.btn{cursor:pointer;width:100%;font-family:var(--font-body);letter-spacing:.05em;transition:transform .15s var(--ease-out), filter .2s, background .2s;border:none;border-radius:999px;padding:.8rem .9rem;font-size:.97rem;font-weight:700;display:block}.btn:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-gold{color:#4a3608;background:var(--gold-foil);text-shadow:0 1px #ffffff80;margin-bottom:4px;box-shadow:inset 0 1px #ffffffb3,0 4px #8a6416,0 6px 14px #9a732059}.btn-outline{color:var(--gold-deep);border:2px solid var(--gold);background:#fff}.btn-outline:hover:not(:disabled){background:var(--cream)}.btn-quiet{width:auto;color:var(--ink-soft);text-underline-offset:3px;background:0 0;align-self:center;font-size:.9rem;font-weight:600;text-decoration:underline}.btn-danger{color:var(--ruby);border:2px solid var(--ruby-pale);background:#fff;font-size:.9rem}.btn-danger:hover:not(:disabled){background:#fdf1f2}.btn-row{gap:8px;display:flex}.btn-row .btn{white-space:nowrap;padding:.7rem .6rem;font-size:.88rem}.app-footer{font-family:var(--font-script);color:var(--gold-deep);margin-top:auto;padding-top:.4rem;font-size:1.15rem}@keyframes twinkle{0%,to{opacity:0;transform:scale(.4)rotate(0)}50%{opacity:1;transform:scale(1)rotate(45deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bulbs{50%{filter:brightness(1.35)drop-shadow(0 0 3px #fff3b0)}}@keyframes alert-in{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.sparkle,.record,.alert-bulbs,.status-dot,.elvis-alert{animation:none}.sparkle{opacity:.8}}@media (width<=380px){.app-title{font-size:2rem}.report-btn{font-size:1.2rem}}
