:root{--bg:#f5d68a;--bg-deep:#fff;--surface:#fff;--surface-2:#fbf0df;--surface-3:#f5e3c6;--surface-glass:#ffffffdb;--border:#22507524;--border-strong:#2250753d;--text:#225075;--text-soft:#5b7592;--text-faint:#95a8bf;--accent:#a34b14;--accent-strong:#c25a1c;--accent-deep:#225075;--accent-soft:#a34b1424;--done:#0f6c67;--done-soft:#0f6c672e;--done-text:#0f6c67;--reward:#fcab46;--reward-soft:#fcab4638;--info:#0f6c67;--danger:#722c0e;--difficulty-easy:#0f6c67;--difficulty-medium:#a34b14;--difficulty-hard:#225075;--shadow-sm:0 2px 8px #2250751a;--shadow-md:0 10px 28px #22507529;--shadow-lg:0 22px 56px #22507538;--shadow-glow:0 0 0 4px var(--accent-soft);--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--radius-pill:999px;--sans:"Fredoka", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font:16px/1.5 var(--sans);font-optical-sizing:auto;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100svh;margin:0}body{background:radial-gradient(1200px 600px at 85% -10%, #fcab466b, transparent 60%), radial-gradient(900px 500px at -10% 110%, #fdf6ed8c, transparent 60%), radial-gradient(700px 500px at 50% 50%, #a34b141a, transparent 70%), var(--bg);background-attachment:fixed}#root{flex-direction:column;min-height:100svh;display:flex}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--info)}h1,h2,h3,h4{color:var(--text);letter-spacing:-.01em;margin:0;font-weight:700}::selection{background:var(--accent);color:#fff}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes glow-pulse{0%{box-shadow:0 0 #a34b1473}70%{box-shadow:0 0 0 14px #a34b1400}to{box-shadow:0 0 #a34b1400}}@keyframes fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes ripple{0%{opacity:.7;transform:scale(.6)}to{opacity:0;transform:scale(1.6)}}.app{--nav-height:72px;flex-direction:column;min-height:100svh;display:flex}.app-header{z-index:20;border-bottom:1px solid var(--border);color:#383726;--text:#383726;--text-soft:#383726c7;--text-faint:#3837268c;background:#fefacd;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand-mark{width:44px;height:44px;box-shadow:var(--shadow-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.brand-mark img{object-fit:cover;width:100%;height:100%;display:block}.brand h1{letter-spacing:-.01em;font-size:18px;line-height:1.05}.tagline{color:var(--text-soft);letter-spacing:.04em;text-transform:uppercase;margin:2px 0 0;font-size:12px}.header-stats{align-items:center;gap:14px;display:flex}.header-stat{color:var(--text-soft);flex-direction:column;align-items:flex-end;gap:4px;font-size:12px;display:flex}.header-stat-value{color:var(--text);letter-spacing:.02em;font-size:14px;font-weight:700}.header-stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);font-size:11px}.header-xp{width:80px;height:6px}.app-main{min-height:0;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom));flex-direction:column;flex:1;display:flex}.screen{flex-direction:column;flex:1;gap:22px;width:100%;max-width:980px;margin:0 auto 20px;padding:24px 20px 8px;animation:.3s both fade-up;display:flex}.screen-header{flex-direction:column;gap:4px;display:flex}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:600}.screen-header h2{letter-spacing:-.02em;font-size:32px;line-height:1.05}.screen-sub{color:var(--text-soft);max-width:560px;margin:0}.section-row{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.section-row h3{letter-spacing:-.01em;font-size:17px}.section-count{color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.empty-card{border-radius:var(--radius-md);background:var(--surface);border:1px dashed var(--border-strong);color:var(--text-soft);text-align:center;padding:28px 20px}.bottom-nav{z-index:30;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--border);color:#383726;--text:#383726;--text-soft:#383726c7;--text-faint:#3837268c;background:#fefacd;grid-template-columns:repeat(5,1fr);gap:4px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 28px #3837262e}.bottom-nav-item{border-radius:var(--radius-md);color:var(--text-soft);background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;font-size:11px;transition:background .2s,color .2s,transform .2s;display:flex}.bottom-nav-item:hover{color:var(--text)}.bottom-nav-item:active{transform:scale(.95)}.bottom-nav-icon{color:currentColor;opacity:.7;font-size:20px;line-height:1;transition:opacity .2s,transform .2s,color .2s}.bottom-nav-label{letter-spacing:.02em;font-weight:500}.bottom-nav-active{background:var(--accent-soft);color:var(--accent)}.bottom-nav-active .bottom-nav-icon{opacity:1;transform:translateY(-1px)scale(1.05)}.card-feed{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s;animation:.3s both pop-in;display:flex;overflow:hidden}.task-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-3px)}.task-card-done{opacity:.78}.task-card-done .task-card-hero{filter:saturate(.5)brightness(.85)}.task-card-hero{cursor:pointer;color:#fffffff5;border:0;justify-content:space-between;align-items:flex-end;height:132px;padding:14px;display:flex;position:relative;overflow:hidden}.task-card-hero:before{content:"";pointer-events:none;background:radial-gradient(circle at 70% 30%,#ffffff26 0%,#0000 60%);position:absolute;inset:0}.task-card-hero-img{object-fit:cover;z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.task-card-hero-with-image:before{z-index:1;background:linear-gradient(#0000 0%,#0000001a 40%,#0000008c 100%),radial-gradient(circle at 70% 30%,#ffffff1f 0%,#0000 60%)}.task-card-hero-with-image .task-card-emoji{display:none}.task-card-hero-with-image .task-card-number,.task-card-hero-with-image .task-card-difficulty{z-index:2}.task-card-emoji{opacity:.32;filter:drop-shadow(0 4px 12px #0006);pointer-events:none;font-size:70px;position:absolute;bottom:-10px;right:-8px;transform:rotate(-8deg)}.task-card-number{letter-spacing:.08em;border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1;background:#00000052;padding:4px 10px;font-size:13px;font-weight:700;position:relative}.task-card-difficulty{z-index:1;position:relative}.task-card-done-tag{letter-spacing:.06em;text-transform:uppercase;background:var(--done);color:#fff;border-radius:var(--radius-pill);z-index:2;padding:4px 10px;font-size:11px;font-weight:700;position:absolute;top:12px;right:12px}.task-card-body{flex-direction:column;gap:8px;padding:14px 16px 16px;display:flex}.task-card-row{align-items:center;gap:8px;display:flex}.task-card-category{text-transform:uppercase;letter-spacing:.1em;color:var(--text-soft);flex:1;font-size:12px}.task-card-ring{flex-shrink:0}.task-card-title{letter-spacing:-.01em;font-size:17px;line-height:1.2}.task-card-hint{color:var(--text-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.task-card-foot{color:var(--text-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:4px;font-size:12.5px;display:flex}.task-card-distance{align-items:center;gap:4px;display:inline-flex}.task-card-cta{background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-md);border:1px solid #0000;justify-content:space-between;align-items:center;margin-top:10px;padding:10px 14px;font-size:14px;font-weight:600;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.task-card-cta:hover{background:var(--accent);color:var(--bg-deep)}.task-card-done .task-card-cta{background:var(--done-soft);color:var(--done)}.task-card-done .task-card-cta:hover{background:var(--done);color:var(--bg-deep)}.difficulty-chip{text-transform:uppercase;letter-spacing:.08em;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border-strong);padding:4px 10px;font-size:11px;font-weight:700}.task-card-hero .difficulty-chip,.detail-hero .difficulty-chip{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;background:#0000005c;border-color:#ffffff2e}.task-card-hero .difficulty-easy,.detail-hero .difficulty-easy{color:#95dad4}.task-card-hero .difficulty-medium,.detail-hero .difficulty-medium{color:#fcab46}.task-card-hero .difficulty-hard,.detail-hero .difficulty-hard{color:#b6c8e0}.difficulty-easy{color:var(--difficulty-easy)}.difficulty-medium{color:var(--difficulty-medium)}.difficulty-hard{color:var(--difficulty-hard)}.reward-pill{background:var(--reward-soft);color:var(--accent-deep);border-radius:var(--radius-pill);letter-spacing:.02em;border:1px solid #fcab4666;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.chip{border-radius:var(--radius-pill);background:var(--surface-2);color:var(--text-soft);border:1px solid var(--border);align-items:center;padding:3px 9px;font-size:11.5px;display:inline-flex}.chip-ghost{background:0 0}.memory-strip{scrollbar-width:thin;gap:10px;padding-bottom:6px;display:flex;overflow-x:auto}.memory-chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-soft);flex:none;align-items:center;gap:8px;padding:8px 14px 8px 8px;font-size:13px;transition:background .2s,border-color .2s,transform .2s;display:flex}.memory-chip:hover{background:var(--surface-2);border-color:var(--accent-soft);transform:translateY(-1px)}.memory-chip-tick{background:var(--done);width:22px;height:22px;color:var(--bg-deep);border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:inline-flex}.memory-chip-title{color:var(--text);font-weight:600}.memory-chip-dist{color:var(--text-faint);font-size:11px}.task-row{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:14px;width:100%;padding:12px 14px;transition:background .2s,border-color .2s,transform .2s;animation:.25s both pop-in;display:flex}.task-row:hover{background:var(--surface-2);border-color:var(--border-strong)}.task-row-done{opacity:.75}.task-row-done .task-row-title{color:var(--text-soft);text-decoration:line-through}.task-row-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.task-row-title{color:var(--text);font-size:14.5px;font-weight:600}.task-id{color:var(--text-faint);margin-right:4px;font-size:12px;font-weight:500}.task-row-meta{flex-wrap:wrap;gap:6px;display:flex}.category-icon{border:1px solid;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.progress-ring .ring-track{stroke:var(--surface-3)}.progress-ring .ring-fill{stroke:var(--accent);transition:stroke-dashoffset .5s}.progress-ring.ring-done .ring-fill,.progress-ring .ring-check{stroke:var(--done)}.progress-ring .ring-text{fill:var(--text-soft);font-weight:600}.checklist-controls{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:10px;padding:14px;display:flex}.search-input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);width:100%;font:inherit;color:var(--text);padding:10px 14px;transition:border-color .2s,box-shadow .2s,background .2s}.search-input:focus{border-color:var(--accent);background:var(--bg);box-shadow:var(--shadow-glow);outline:none}.chip-row{scrollbar-width:thin;flex-wrap:nowrap;align-items:center;gap:6px;display:flex;overflow-x:auto}.chip-row-wrap{flex-wrap:wrap;overflow-x:visible}.pill{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-soft);white-space:nowrap;padding:6px 12px;font-size:12.5px;transition:background .2s,color .2s,border-color .2s}.pill:hover{border-color:var(--border-strong);color:var(--text)}.pill-active{background:var(--accent);color:var(--bg-deep);border-color:var(--accent);font-weight:600}.distance-toggle{color:var(--text-soft);align-items:center;gap:8px;font-size:13px;display:inline-flex}.distance-toggle input[type=checkbox]{accent-color:var(--accent)}.distance-toggle-hint{color:var(--text-faint);font-size:12px}.checklist-grid{flex-direction:column;gap:10px;display:flex}.map-screen{flex-direction:column;flex:1;gap:0;max-width:none;margin-bottom:0;padding:0;display:flex;position:relative}.map-wrapper{flex-direction:column;flex:1;min-height:80vh;display:flex;position:relative}.map-fill{flex:1;display:flex}.map{background:var(--surface-2);flex:1;width:100%;height:100%;min-height:320px}.map-recentre{z-index:500;background:var(--surface-glass);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-pill);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:8px 14px;font-size:13px;font-weight:500;transition:background .2s,color .2s;position:absolute;top:14px;right:14px}.map-recentre:hover{background:var(--accent);color:var(--bg-deep);border-color:var(--accent)}.task-pin-wrap{background:0 0;border:0}.task-pin{background:var(--accent);width:32px;height:32px;color:var(--bg-deep);border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:800;transition:transform .2s,opacity .2s,filter .2s;display:flex;box-shadow:0 4px 12px #0000008c}.task-pin-done{background:var(--done);opacity:.55;filter:saturate(.7);font-size:14px}.task-pin-selected{background:var(--accent-strong);opacity:1;border-width:3px;animation:1.6s ease-out infinite glow-pulse;transform:scale(1.3);box-shadow:0 6px 20px #000000b3}.user-pin-wrap{background:0 0;border:0}.user-pin{background:var(--accent);border:3px solid #fff;border-radius:50%;width:22px;height:22px;display:block;position:relative;box-shadow:0 2px 12px #a34b148c}.user-pin:after{content:"";border:2px solid #a34b148c;border-radius:50%;animation:1.8s ease-out infinite ripple;position:absolute;inset:-8px}.leaflet-popup-content-wrapper{background:var(--surface)!important;color:var(--text)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-md)!important;border:1px solid var(--border)!important}.leaflet-popup-tip{border:1px solid var(--border);background:var(--surface)!important}.leaflet-popup-content{font:13px/1.45 var(--sans);color:var(--text);margin:12px 14px!important}.leaflet-popup-content strong{color:var(--text);margin-bottom:2px;font-size:14px;display:block}.leaflet-popup-content em{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-style:normal;font-weight:700}.leaflet-control-attribution{color:var(--text-soft)!important;background:#ffffffd9!important;font-size:10px!important}.leaflet-control-attribution a{color:var(--accent-deep)!important}.leaflet-control-zoom a{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--surface-glass)!important;color:var(--text)!important;border:1px solid var(--border-strong)!important}.leaflet-control-zoom a:hover{background:var(--accent)!important;color:var(--bg-deep)!important}.nearby-toast{z-index:600;background:var(--surface-glass);border:1px solid var(--accent-soft);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(14px)saturate(140%);backdrop-filter:blur(14px)saturate(140%);box-shadow:var(--shadow-lg);text-align:left;color:inherit;align-items:center;gap:12px;padding:12px 14px;animation:.3s both pop-in;display:flex;position:absolute;bottom:18px;left:14px;right:14px}.nearby-toast:hover{border-color:var(--accent)}.nearby-toast-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.nearby-toast-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:700}.nearby-toast-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;line-height:1.2;overflow:hidden}.nearby-toast-meta{color:var(--text-soft);font-size:12px}.nearby-toast-cta{color:var(--accent);flex-shrink:0;font-size:18px}.detail-overlay{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#2250756b;justify-content:center;align-items:flex-end;animation:.25s both fade-up;display:flex;position:fixed;inset:0}.detail-sheet{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:min(100%,560px);max-height:92svh;box-shadow:var(--shadow-lg);flex-direction:column;animation:.3s both pop-in;display:flex;overflow-y:auto}@media (width>=720px){.detail-overlay{align-items:center}.detail-sheet{border-radius:var(--radius-lg)}}.detail-hero{color:#fff;align-items:flex-end;height:200px;padding:16px;display:flex;position:relative;overflow:hidden}.detail-hero:before{content:"";background:linear-gradient(#0000 40%,#0000008c 100%);position:absolute;inset:0}.detail-hero-img{object-fit:cover;z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.detail-hero-with-image:before{z-index:1;background:linear-gradient(#0000 0%,#00000026 40%,#0009 100%)}.detail-hero-with-image .detail-hero-emoji{display:none}.detail-hero-with-image .detail-hero-meta{z-index:2}.detail-hero-emoji{opacity:.32;filter:drop-shadow(0 6px 20px #00000073);pointer-events:none;font-size:130px;position:absolute;bottom:-16px;right:-10px;transform:rotate(-8deg)}.detail-hero-meta{align-items:center;gap:10px;display:flex;position:relative}.detail-hero-number{color:#fff;border-radius:var(--radius-pill);letter-spacing:.1em;text-transform:uppercase;background:#0000006b;padding:4px 10px;font-size:12px;font-weight:700}.detail-close{color:#fff;z-index:2;background:#00000080;border:1px solid #ffffff2e;border-radius:999px;width:36px;height:36px;font-size:16px;position:absolute;top:12px;right:12px}.detail-close:hover{background:#000000bf}.detail-body{flex-direction:column;gap:14px;padding:18px 20px 24px;display:flex}.detail-title-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.detail-title-row h2{letter-spacing:-.02em;font-size:24px;line-height:1.15}.detail-reward{flex-shrink:0;font-size:13px}.detail-category{color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:13px}.detail-story{color:var(--text-soft);margin:0;font-size:15px;line-height:1.5}.detail-stats{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:12px;display:grid}.detail-stats>div{flex-direction:column;gap:2px;display:flex}.detail-stats dt{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:600}.detail-stats dd{color:var(--text);margin:0;font-size:16px;font-weight:700}.gps-verify{border-radius:var(--radius-md);background:var(--surface-2);border:1px solid var(--border);color:var(--text-soft);align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:inline-flex}.gps-verify .gps-dot{background:var(--text-faint);border-radius:999px;width:8px;height:8px}.gps-verified{background:var(--done-soft);color:var(--done-text);border-color:#0f6c6766}.gps-verified .gps-dot{background:var(--done);animation:1.6s ease-out infinite glow-pulse;box-shadow:0 0 0 4px #0f6c6740}.gps-far{background:var(--accent-soft);color:var(--accent);border-color:#a34b1466}.gps-far .gps-dot{background:var(--accent)}.gps-off{color:var(--accent);background:#fcab4624;border-color:#fcab4666}.gps-off .gps-dot{background:var(--reward)}.check-in{border-radius:var(--radius-md);letter-spacing:.01em;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:4px;padding:14px 16px;font-size:16px;font-weight:700;transition:background .2s,color .2s,transform .2s;display:inline-flex}.check-in.ready{background:linear-gradient(135deg, var(--done) 0%, #1a8e88 100%);color:#fff;animation:1.8s ease-out infinite glow-pulse;box-shadow:0 10px 30px #0f6c6773}.check-in.ready:hover{transform:translateY(-2px)}.check-in.locked,.check-in.undo{background:var(--surface-2);color:var(--text-soft);border-color:var(--border)}.check-in.undo:hover{background:var(--surface-3);color:var(--text)}.detail-secondary{color:var(--accent);text-align:center;background:0 0;border:0;padding:8px 4px;font-weight:600}.detail-secondary:hover{color:var(--accent-strong)}.achievements-screen{gap:26px}.badge-section{flex-direction:column;gap:12px;display:flex}.badge-section h3{letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);font-size:14px}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;display:grid}.badge-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:18px 14px 16px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.badge-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.badge-medal{background:linear-gradient(135deg, var(--surface-3), var(--surface-2));border:2px solid var(--border-strong);border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;display:flex;position:relative}.badge-medal:before{content:"";border:1px dashed #4a6e9147;border-radius:50%;position:absolute;inset:5px}.badge-emoji{filter:grayscale(.6)brightness(.9);font-size:34px}.badge-earned{border-color:#fcab4673;animation:.3s both pop-in;box-shadow:0 8px 24px #fcab462e}.badge-earned .badge-medal{background:linear-gradient(135deg,#fcab46 0%,#ffc88a 50%,#a34b14 100%);border-color:#fcab46;box-shadow:0 6px 20px #fcab4673,inset 0 0 0 2px #ffffff40}.badge-earned .badge-emoji{filter:drop-shadow(0 2px 4px #0000004d)}.badge-card h4{letter-spacing:-.01em;font-size:14px}.badge-card p{color:var(--text-soft);margin:0;font-size:12px;line-height:1.35}.badge-state{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-size:11px;font-weight:700}.badge-earned .badge-state{color:var(--accent-deep)}.badge-locked .badge-emoji{opacity:.55}.profile-screen{gap:18px}.profile-hero{background:linear-gradient(135deg, var(--surface-3), var(--surface-2));border:1px solid var(--border-strong);border-radius:var(--radius-lg);align-items:center;gap:16px;padding:20px;display:flex}.profile-avatar{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-deep) 100%);width:64px;height:64px;color:var(--bg-deep);box-shadow:var(--shadow-md);border-radius:18px;justify-content:center;align-items:center;font-size:30px;display:flex}.profile-hero-meta{flex-direction:column;flex:1;gap:4px;display:flex}.profile-hero-meta h2{letter-spacing:-.02em;font-size:22px}.level-badge{background:var(--reward-soft);color:var(--accent-deep);border-radius:var(--radius-pill);letter-spacing:.04em;border:1px solid #fcab4666;align-self:flex-start;padding:4px 10px;font-size:12px;font-weight:700}.profile-ring{flex-shrink:0}.stat-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}@media (width<=540px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:4px;padding:14px;display:flex}.stat-value{letter-spacing:-.02em;color:var(--text);font-size:22px;font-weight:800}.stat-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);font-size:11px}.profile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:12px;padding:18px;display:flex}.profile-card-hint{color:var(--text-soft);margin:0;font-size:13px}.xp-bar{border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border);height:10px;overflow:hidden}.xp-bar-fill{background:linear-gradient(90deg, var(--accent), var(--reward));height:100%;transition:width .5s;display:block}.category-progress{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.category-progress li{align-items:center;gap:12px;display:flex}.category-progress-body{flex-direction:column;flex:1;gap:4px;display:flex}.category-progress-row{justify-content:space-between;font-size:13px;display:flex}.category-progress-count{font-variant-numeric:tabular-nums;color:var(--text-soft)}.category-bar{background:var(--surface-2);border-radius:999px;height:6px;overflow:hidden}.category-bar-fill{background:var(--accent);height:100%;transition:width .4s;display:block}.danger-button{color:var(--danger);border-radius:var(--radius-md);background:#722c0e1f;border:1px solid #722c0e66;padding:10px 14px;font-weight:600}.danger-button:not(:disabled):hover{background:var(--danger);color:var(--bg-deep)}.badge-toast{bottom:calc(86px + env(safe-area-inset-bottom));z-index:60;color:var(--bg-deep);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);background:linear-gradient(135deg,#fcab46 0%,#ffc88a 100%);align-items:center;gap:12px;padding:12px 18px 12px 12px;animation:.35s both pop-in;display:flex;position:fixed;left:50%;transform:translate(-50%)}.badge-toast-medal{background:#ffffff73;border-radius:999px;justify-content:center;align-items:center;width:44px;height:44px;font-size:32px;display:inline-flex}.badge-toast-title{text-transform:uppercase;letter-spacing:.1em;opacity:.7;font-size:11px;font-weight:700}.badge-toast-name{font-size:15px;font-weight:800}@media (width<=720px){.screen{padding:18px 14px 8px}.screen-header h2{font-size:26px}.header-stats{gap:10px}.header-xp{width:60px}}@media (width<=420px){.brand h1{font-size:16px}.tagline{font-size:11px}.brand-mark{width:38px;height:38px;font-size:18px}.bottom-nav-label{font-size:10px}.bottom-nav-icon{font-size:20px}.stat-grid{grid-template-columns:repeat(2,1fr)}}
