/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--ink:#062c33;--muted:#627279;--paper:#f7faf8;--surface:#fff;--line:#dbe7e3;--lime:#b8ff23;--lime-2:#8fe81d;--teal:#087f78;--blue:#15427d;--coral:#ff7b54;--amber:#ffc247;--shadow:0 16px 42px #052c3321;--radius:8px;--nav-height:76px;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(180deg, #b8ff231a, transparent 260px), var(--paper);min-width:320px;min-height:100svh;margin:0}button,input,textarea,select{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:0}input,textarea,select{border:1px solid var(--line);border-radius:var(--radius);width:100%;min-height:46px;color:var(--ink);background:#fff;outline:none;padding:10px 12px}textarea{resize:vertical;min-height:112px}label{color:var(--muted);gap:8px;font-size:13px;font-weight:750;display:grid}.eyebrow{color:var(--teal);letter-spacing:0;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;font-weight:900;display:inline-flex}.primary-button,.secondary-button,.ghost-button,.fab-button,.primary-link,.text-link{border-radius:var(--radius);border:0;justify-content:center;align-items:center;gap:8px;min-height:46px;font-weight:850;display:inline-flex}.primary-button,.fab-button,.primary-link{background:var(--ink);color:#fff;box-shadow:0 10px 24px #062c3333}.secondary-button{color:var(--ink);background:#087f7814;border:1px solid #087f7840}.ghost-button{border:1px solid var(--line);color:var(--ink);background:#fff}.text-link{min-height:auto;color:var(--blue);justify-content:flex-start;font-size:13px}.full-width{width:100%}.icon-button,.avatar-button{border:1px solid var(--line);border-radius:var(--radius);width:40px;height:40px;color:var(--ink);background:#ffffffe0;place-items:center;display:inline-grid}.avatar-button{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:900}.danger{color:#b42318}.error-text,.success-text{border-radius:var(--radius);padding:10px 12px;font-size:13px;font-weight:780}.error-text{color:#9a3412;background:#ff7b5424}.success-text{color:#176b3a;background:#b8ff233d}.splash-screen,.access-denied{text-align:center;align-content:center;place-items:center;gap:18px;min-height:100svh;padding:24px;display:grid}.brand-orbit{aspect-ratio:1.45;background:radial-gradient(circle,#b8ff2342,#0000 68%);border-radius:28px;place-items:center;width:min(360px,88vw);display:grid}.brand-orbit img{object-fit:contain;width:92%;height:92%}.login-screen{grid-template-columns:minmax(0,1fr) 390px;align-items:center;gap:28px;width:min(1120px,100%);min-height:100svh;margin:0 auto;padding:28px;display:grid}.login-visual{color:#fff;min-height:620px;box-shadow:var(--shadow);background:radial-gradient(circle at 70% 22%,#b8ff2361,#0000 24%),linear-gradient(135deg,#06323a,#0a6f74 56%,#15366f);border-radius:20px;align-content:end;gap:24px;padding:34px;display:grid;overflow:hidden}.brand-card{place-items:center;min-height:310px;display:grid}.brand-card img{object-fit:contain;filter:drop-shadow(0 22px 28px #0000003d);width:min(620px,100%);max-height:360px}.login-copy{gap:12px;max-width:660px;display:grid}.login-copy h1{font-size:clamp(36px,7vw,72px);font-weight:950;line-height:1.04}.login-copy p{color:#ffffffc7;max-width:620px;font-size:17px}.login-panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#ffffffeb;border-radius:16px;gap:16px;padding:24px;display:grid}.login-panel h2{font-size:25px;font-weight:930}.quick-login-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.quick-login-row .ghost-button{min-height:42px}.app-shell{background:linear-gradient(180deg, #b8ff2329, transparent 210px), var(--paper);border-inline:1px solid #062c3314;max-width:460px;min-height:100svh;margin:0 auto;position:relative}.mobile-header{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7faf8e0;grid-template-columns:44px 1fr 44px;align-items:center;gap:12px;min-height:74px;padding:12px 16px;display:grid;position:sticky;top:0}.mobile-header strong{font-size:18px;font-weight:920;display:block}.content-frame{min-height:calc(100svh - var(--nav-height) - 74px);padding:8px 14px calc(var(--nav-height) + 18px)}.page-stack,.collect-page,.map-page{gap:14px;display:grid}.bottom-nav{z-index:30;width:min(460px,100%);height:var(--nav-height);padding:8px 8px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border-top:1px solid #062c331a;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{color:#718087;background:0 0;border:0;place-items:center;gap:2px;font-size:11px;font-weight:850;display:grid}.bottom-nav button svg{border-radius:999px;width:22px;height:22px;padding:3px}.bottom-nav .active{color:var(--ink)}.bottom-nav .active svg{background:var(--lime);box-shadow:0 0 18px #b8ff23b8}.search-box{border:1px solid var(--line);border-radius:var(--radius);background:#fff;grid-template-columns:20px 1fr;align-items:center;gap:8px;min-height:48px;padding:0 12px;display:grid}.search-box input{border:0;min-height:44px;padding-inline:0}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading h2{font-size:20px;font-weight:930}.metric-pill,.partner-badge,.muted-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:26px;padding:5px 9px;font-size:11px;font-weight:900;display:inline-flex}.metric-pill,.partner-badge{background:var(--lime);color:var(--ink)}.muted-badge{color:var(--muted);background:#edf3f1}.venue-list,.event-list,.record-list{gap:12px;display:grid}.venue-card,.event-card,.profile-card,.level-panel,.scanner-panel,.admin-form,.admin-table{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 10px 28px #062c330f}.venue-card{grid-template-columns:52px 1fr;gap:12px;padding:12px;display:grid}.partner-card{background:linear-gradient(120deg,#b8ff2340,#ffffffeb 45%),#fff;border-color:#8fe81db8}.venue-icon{border-radius:var(--radius);background:#062c330f;place-items:center;width:52px;height:52px;display:grid}.venue-main{gap:8px;min-width:0;display:grid}.venue-title-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.venue-title-row h3,.event-summary h3{font-size:16px;font-weight:920;line-height:1.18}.venue-main p,.event-summary p,.drawer p,.level-panel p{color:var(--muted);font-size:13px;line-height:1.45}.meta-grid{color:#526168;gap:4px;font-size:12px;display:grid}.event-card{overflow:hidden}.event-art{color:#fff;background-position:50%;background-size:cover;justify-content:space-between;align-items:flex-end;min-height:136px;padding:12px;display:flex;position:relative}.event-art:after{content:"";background:linear-gradient(#0000,#0000002e);position:absolute;inset:0}.event-art>*{z-index:1;position:relative}.event-art span{background:#062c33b8;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.event-summary{text-align:left;background:#fff;border:0;grid-template-columns:1fr 24px;gap:12px;width:100%;padding:14px;display:grid}.event-summary svg{transition:transform .16s}.event-summary .rotate{transform:rotate(90deg)}.event-detail{color:var(--muted);gap:12px;padding:0 14px 14px;font-size:14px;line-height:1.52;display:grid}.collect-hero{color:#fff;background:radial-gradient(circle at 78% 42%,#b8ff23b8,#0000 22%),radial-gradient(circle at 70% 64%,#4dd8ae57,#0000 34%),linear-gradient(135deg,#031f27 0%,#065d65 54%,#133771 100%);border:1px solid #b8ff2338;border-radius:22px;grid-template-columns:minmax(0,1fr) 178px;align-items:center;gap:8px;min-height:214px;padding:22px 14px 18px 18px;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 48px #0428313d,inset 0 1px #ffffff24}.collect-hero:before,.collect-hero:after{content:"";pointer-events:none;position:absolute}.collect-hero:before{border:1px solid #ffffff1f;border-radius:50%;width:240px;height:240px;top:-50px;right:-68px;box-shadow:0 0 0 28px #ffffff09,0 0 80px #b8ff235c}.collect-hero:after{background:linear-gradient(116deg,#ffffff24,#0000 22%),linear-gradient(#0000 72%,#0000002e);inset:0}.collect-copy{z-index:2;gap:8px;display:grid;position:relative}.collect-hero h1{align-items:flex-end;gap:8px;font-size:64px;font-weight:950;line-height:1;display:flex}.collect-hero h1 small{color:#ffffffa6;padding-bottom:7px;font-size:32px;font-weight:950}.collect-hero p{color:#ffffffd1;max-width:210px;font-size:16px;line-height:1.45}.hero-meter{background:#ffffff24;border-radius:999px;width:min(192px,100%);height:8px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1a}.hero-meter span{border-radius:inherit;background:linear-gradient(90deg, var(--lime), #5effbd);height:100%;display:block;box-shadow:0 0 18px #b8ff23d1}.hero-art{z-index:2;place-items:center;min-width:172px;min-height:186px;display:grid;position:relative;transform:translate(12px)}.hero-rebuild-preview{contain:layout paint;width:166px;height:166px;position:relative}.hero-rebuild-preview:before{content:"";background:radial-gradient(circle at 35% 25%,#ffffffb8,#0000 18%),radial-gradient(circle at 54% 48%,#b8ff23cc,#0000 42%),linear-gradient(135deg,#b8ff2333,#087f783d);border-radius:50%;position:absolute;inset:20px;box-shadow:inset -16px -18px 26px #031f2747,0 16px 28px #00000038,0 0 28px #b8ff2342}.hero-rebuild-preview i{background:radial-gradient(#00000038,#0000 70%);border-radius:50%;height:18px;position:absolute;bottom:18px;left:20px;right:20px}.mini-piece{z-index:2;clip-path:polygon(16% 9%,88% 17%,76% 80%,26% 94%,7% 45%);background:radial-gradient(circle at 34% 25%, #ffffffe0, transparent 18%), linear-gradient(135deg, #eaff76, var(--lime) 48%, #45cc83);opacity:.5;border:2px solid #062c33b8;border-radius:13px;width:48px;height:48px;position:absolute;box-shadow:inset -7px -8px 11px #062c332e,0 8px 14px #0000002e}.mini-piece.locked,.mini-piece.active{opacity:1}.mini-piece.active{will-change:transform;animation:1.7s ease-in-out infinite mini-piece-pulse}.mini-piece-1{--r:-10deg;transform:rotate(var(--r));top:20px;left:40px}.mini-piece-2{--r:6deg;transform:rotate(var(--r));top:18px;left:77px}.mini-piece-3{--r:30deg;transform:rotate(var(--r));top:43px;left:106px}.mini-piece-4{--r:70deg;transform:rotate(var(--r));top:83px;left:100px}.mini-piece-5{--r:128deg;transform:rotate(var(--r));top:99px;left:61px}.mini-piece-6{--r:-138deg;transform:rotate(var(--r));top:76px;left:25px}.mini-piece-7{--r:-2deg;transform:rotate(var(--r));top:57px;left:54px}@keyframes mini-piece-pulse{0%,to{transform:translateY(0) scale(1) rotate(var(--r,0deg))}50%{transform:translateY(-5px) scale(1.04) rotate(var(--r,0deg))}}.orbit-chip{color:var(--lime);text-transform:uppercase;background:#031f27ad;border:1px solid #fff3;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:950;position:absolute;bottom:18px;right:10px;box-shadow:0 10px 24px #00000038}.assembly-card{background:radial-gradient(circle at 50% 46%,#b8ff2338,#0000 24%),radial-gradient(circle at 50% 58%,#087f781f,#0000 36%),linear-gradient(#fff,#f5fbf8);border:1px solid #062c331a;border-radius:22px;gap:12px;min-height:388px;padding:16px;display:grid;position:relative;overflow:hidden;box-shadow:0 20px 44px #062c331a,inset 0 1px #ffffffd1}.assembly-header,.assembly-footer{z-index:2;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.assembly-header h2{font-size:20px;font-weight:950}.assembly-header strong,.assembly-footer strong{background:var(--ink);color:#fff;border-radius:999px;align-items:center;min-height:30px;padding:6px 10px;font-size:12px;font-weight:950;display:inline-flex}.assembly-stage{perspective:900px;min-height:286px;transform-style:preserve-3d;position:relative}.rebuild-scene{contain:layout paint;place-items:center;width:100%;height:286px;display:grid;position:relative;overflow:visible}.rebuild-scene.compact{width:210px;height:210px;transform:translate(-8px)scale(1.04)}.rebuild-svg{width:min(330px,100%);height:min(330px,100%);overflow:visible}.rebuild-scene.compact .rebuild-svg{width:230px;height:230px}.rebuild-shadow{fill:#041f2733}.rebuild-orbit{fill:none;stroke:#087f7824;stroke-width:2px;transform-box:fill-box;transform-origin:50%}.rebuild-orbit.orbit-a{stroke-dasharray:18 12}.rebuild-orbit.orbit-b{stroke:#b8ff2333;stroke-dasharray:4 13}.core-halo circle{fill:#b8ff232e}.svg-fragment{--locked-transform:translate(0, 0) rotate(0deg) scale(1);--active-transform:translate(0, 0) rotate(0deg) scale(1);--active-hover-transform:translate(0, -8px) rotate(3deg) scale(1.04);--waiting-transform:translate(0, 0) rotate(0deg) scale(.78);--waiting-hover-transform:translate(0, -6px) rotate(3deg) scale(.8);transform-box:fill-box;transform-origin:50%;transition:transform .72s cubic-bezier(.2,.9,.18,1),opacity .36s}.svg-fragment.locked{opacity:1;transform:var(--locked-transform)}.svg-fragment.active{opacity:1;transform:var(--active-transform);will-change:transform;animation:1.9s ease-in-out infinite active-piece}.svg-fragment.waiting{opacity:.46;transform:var(--waiting-transform)}.fragment-body{fill:url(#fragmentGlow);stroke:#062c33c7;stroke-width:4px;stroke-linejoin:round}.fragment-edge{fill:none;stroke:url(#fragmentEdge);stroke-width:5px;stroke-linejoin:round;opacity:.75}.fragment-glow-path{fill:#b8ff2357;opacity:0}.svg-fragment.locked .fragment-glow-path,.svg-fragment.active .fragment-glow-path{opacity:.78}.fragment-hole{fill:#063642;stroke:#ffffff73;stroke-width:1.2px}.fragment-crack{fill:none;stroke:#031f27b8;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;opacity:.66}.energy-sparks{fill:var(--lime);stroke:var(--lime);stroke-width:3px;stroke-linecap:round;opacity:.72}.fragment-1{--active-transform:translate(-26px, -18px) rotate(-10deg) scale(1.02);--active-hover-transform:translate(-34px, -27px) rotate(-15deg) scale(1.05);--waiting-transform:translate(-96px, -84px) rotate(-28deg) scale(.72);--waiting-hover-transform:translate(-106px, -92px) rotate(-18deg) scale(.74)}.fragment-2{--active-transform:translate(18px, -28px) rotate(9deg) scale(1.02);--active-hover-transform:translate(28px, -38px) rotate(15deg) scale(1.05);--waiting-transform:translate(78px, -100px) rotate(22deg) scale(.72);--waiting-hover-transform:translate(88px, -108px) rotate(32deg) scale(.74)}.fragment-3{--active-transform:translate(30px, 10px) rotate(12deg) scale(1.02);--active-hover-transform:translate(42px, 4px) rotate(20deg) scale(1.05);--waiting-transform:translate(126px, -18px) rotate(48deg) scale(.72);--waiting-hover-transform:translate(138px, -22px) rotate(56deg) scale(.74)}.fragment-4{--active-transform:translate(20px, 28px) rotate(-8deg) scale(1.02);--active-hover-transform:translate(28px, 40px) rotate(-14deg) scale(1.05);--waiting-transform:translate(74px, 105px) rotate(18deg) scale(.72);--waiting-hover-transform:translate(80px, 116px) rotate(10deg) scale(.74)}.fragment-5{--active-transform:translate(-25px, 26px) rotate(8deg) scale(1.02);--active-hover-transform:translate(-36px, 38px) rotate(16deg) scale(1.05);--waiting-transform:translate(-110px, 70px) rotate(-36deg) scale(.72);--waiting-hover-transform:translate(-120px, 78px) rotate(-46deg) scale(.74)}.fragment-6{--active-transform:translate(-34px, -4px) rotate(-12deg) scale(1.02);--active-hover-transform:translate(-46px, -8px) rotate(-20deg) scale(1.05);--waiting-transform:translate(-125px, -28px) rotate(-58deg) scale(.72);--waiting-hover-transform:translate(-136px, -34px) rotate(-66deg) scale(.74)}.fragment-7{--active-transform:translate(0, -10px) rotate(2deg) scale(1.02);--active-hover-transform:translate(0, -23px) rotate(-3deg) scale(1.05);--waiting-transform:translate(4px, 132px) rotate(31deg) scale(.72);--waiting-hover-transform:translate(0, 144px) rotate(39deg) scale(.74)}@keyframes active-piece{0%,to{transform:var(--active-transform)}50%{transform:var(--active-hover-transform)}}.assembly-stage:before{content:"";background:radial-gradient(#052c332e,#0000 68%);border-radius:50%;height:32px;position:absolute;bottom:32px;left:13%;right:13%}.assembly-footer{border-radius:var(--radius);min-height:46px;color:var(--muted);background:#062c330d;padding:10px 12px;font-size:13px;font-weight:850}.piece-rail{grid-template-columns:repeat(7,1fr);gap:4px;min-width:86px;display:inline-grid}.piece-rail i{background:#cbdcda;border-radius:999px;width:8px;height:8px;display:block}.piece-rail .locked{background:var(--lime);box-shadow:0 0 10px #b8ff23b3}.piece-rail .active{background:#fff;box-shadow:0 0 0 3px #b8ff234d,0 0 12px #b8ff23e6}.reward-strip{color:#6f4800;background:radial-gradient(circle at 8% 30%,#ffc24752,#0000 28%),linear-gradient(90deg,#ffc2472e,#ffffffeb);border:1px solid #ffc24747;border-radius:16px;justify-content:space-between;align-items:center;gap:10px;min-height:58px;padding:13px 14px;font-size:14px;display:flex;box-shadow:0 12px 28px #6f48000f}.fab-button{bottom:calc(var(--nav-height) + 12px);z-index:12;width:100%;min-height:66px;color:var(--ink);background:radial-gradient(circle at 28% 16%,#ffffffb8,#0000 22%),linear-gradient(135deg,#d6ff56,#a7ff0c 48%,#63e87f);border-radius:18px;font-size:18px;position:sticky;box-shadow:0 18px 34px #6ae82252,inset 0 1px #ffffff8a}.modal-backdrop{z-index:80;background:#062c336b;place-items:end center;padding:16px;display:grid;position:fixed;inset:0}.qr-modal{width:min(410px,100%);box-shadow:var(--shadow);background:#fff;border-radius:18px;justify-items:center;gap:12px;padding:22px;display:grid;position:relative}.close-button{position:absolute;top:12px;right:12px}.qr-frame{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius);background:#fff;place-items:center;width:min(288px,78vw);padding:12px;display:grid}.qr-frame img{width:100%;height:100%}.qr-loading{color:var(--muted);font-weight:850}.token-text{overflow-wrap:anywhere;max-width:100%;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.countdown-pill{background:#b8ff2352;border-radius:999px;padding:8px 12px;font-weight:900}.map-page{min-height:calc(100svh - var(--nav-height) - 96px)}.map-toolbar{border-radius:var(--radius);border:1px solid var(--line);background:#fff;gap:2px;padding:12px;display:grid}.map-toolbar small{color:var(--muted)}.real-map,.fallback-map{border:1px solid var(--line);background:linear-gradient(90deg,#ffffff7a 1px,#0000 1px) 0 0/42px 42px,linear-gradient(0deg,#ffffff7a 1px,#0000 1px) 0 0/42px 42px,linear-gradient(135deg,#cce9db,#edf4f1 52%,#d5e4f5);border-radius:18px;min-height:560px;position:relative;overflow:hidden}.map-road{background:#ffffffd1;border-radius:999px;position:absolute;box-shadow:inset 0 0 0 1px #062c330d}.road-a{width:150%;height:38px;top:31%;left:-28%;transform:rotate(-18deg)}.road-b{width:120%;height:34px;top:62%;left:-10%;transform:rotate(22deg)}.road-c{width:34px;height:120%;top:-8%;left:56%;transform:rotate(8deg)}.map-marker{background:0 0;border:0;place-items:center;width:50px;height:50px;display:grid;position:absolute;transform:translate(-50%,-50%)}.map-marker.selected .ball-icon{transform:scale(1.15)}.marker-0{top:26%;left:32%}.marker-1{top:36%;left:67%}.marker-2{top:58%;left:46%}.marker-3{top:72%;left:72%}.marker-4{top:74%;left:22%}.drawer{left:14px;right:14px;bottom:calc(var(--nav-height) + 14px);z-index:10;border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:18px;gap:10px;padding:16px;display:grid;position:absolute}.profile-card{grid-template-columns:74px 1fr;align-items:center;gap:14px;padding:16px;display:grid}.profile-avatar{background:radial-gradient(circle at 35% 28%, #ffffffb3, transparent 24%), linear-gradient(135deg, var(--lime), var(--teal));width:74px;height:74px;color:var(--ink);border-radius:50%;place-items:center;font-size:28px;font-weight:950;display:grid}.profile-card h2{font-size:24px;font-weight:930}.profile-card p{color:var(--muted);font-size:13px}.stats-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stats-grid div{border:1px solid var(--line);border-radius:var(--radius);background:#fff;gap:4px;padding:14px 10px;display:grid}.stats-grid span{color:var(--muted);font-size:11px;font-weight:820}.stats-grid strong{font-size:22px;font-weight:950}.level-panel,.scanner-panel{gap:12px;padding:16px;display:grid}.progress-bar{background:#e7efec;border-radius:999px;height:12px;overflow:hidden}.progress-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--lime), var(--teal));min-width:3%;height:100%;display:block}.scan-actions{gap:10px;display:grid}.scanner-video{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);background:#111;width:100%}.record-row{border:1px solid var(--line);border-radius:var(--radius);background:#fff;grid-template-columns:32px 1fr;align-items:center;gap:10px;padding:12px;display:grid}.record-row svg{width:32px;height:32px;color:var(--teal);background:#b8ff2347;border-radius:999px;padding:6px}.record-row div{gap:3px;display:grid}.record-row span{color:var(--muted);font-size:12px}.ball-icon{background:radial-gradient(circle at 33% 25%, #ffffffdb, transparent 18%), var(--lime);border:3px solid #06464f;border-radius:50%;width:42px;height:42px;transition:transform .16s;display:inline-block;position:relative;box-shadow:inset -7px -9px 12px #05464f29}.ball-icon>span{background:#06464f;border-radius:50%;width:5px;height:5px;position:absolute}.ball-icon>span:first-child{top:10px;left:12px}.ball-icon>span:nth-child(2){top:15px;right:9px}.ball-icon>span:nth-child(3){bottom:9px;left:19px}.ball-icon.glow{box-shadow:0 0 0 7px #b8ff232e,0 0 24px #b8ff23eb,inset -7px -9px 12px #05464f29}.ball-icon.empty{background:radial-gradient(circle at 33% 25%,#ffffffe6,#0000 18%),#edf2f1;border-color:#96a5aa}.ball-icon.empty>span{background:#96a5aa}.ball-icon.done{background:radial-gradient(circle at 33% 25%, #ffffffe6, transparent 18%), linear-gradient(135deg, var(--lime), #53d192);place-items:center;display:inline-grid}.ball-icon.done svg{z-index:2;color:var(--ink);position:relative}.ball-icon.broken i{border-left:3px solid #06464f;position:absolute;inset:8px 14px 8px 16px;transform:skew(-18deg)}.loading-stack{gap:12px;display:grid}.loading-stack span{border-radius:var(--radius);background:linear-gradient(90deg,#edf3f1,#fff,#edf3f1) 0 0/220% 100%;height:92px;animation:1.2s linear infinite shimmer}@keyframes shimmer{to{background-position:-220% 0}}.admin-shell{background:#f4f7f6;grid-template-columns:258px 1fr;min-height:100svh;display:grid}.admin-sidebar{border-right:1px solid var(--line);background:#fff;align-content:start;gap:8px;height:100svh;padding:18px;display:grid;position:sticky;top:0}.admin-brand{align-items:center;gap:10px;padding:8px 0 18px;display:flex}.admin-brand div{display:grid}.admin-brand span{color:var(--muted);font-size:12px}.admin-sidebar button{border-radius:var(--radius);min-height:44px;color:var(--muted);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:0 12px;font-weight:850;display:flex}.admin-sidebar .active{color:var(--ink);background:#b8ff233d;border-color:#087f7838}.admin-content{padding:28px}.admin-grid{grid-template-columns:minmax(340px,420px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.admin-grid.single-column{grid-template-columns:1fr}.admin-header{grid-column:1/-1;gap:7px;display:grid}.admin-header h1{font-size:32px;font-weight:950}.admin-header p{color:var(--muted)}.admin-form,.admin-table{gap:12px;padding:16px;display:grid}.two-col{grid-template-columns:1fr 1fr;gap:10px;display:grid}.toggle-row{color:var(--ink);grid-template-columns:20px 1fr;align-items:center}.toggle-row input{width:18px;min-height:18px}.admin-row{border:1px solid var(--line);border-radius:var(--radius);background:#fff;grid-template-columns:minmax(0,1fr) auto 40px 40px;align-items:center;gap:10px;min-height:58px;padding:10px;display:grid}.admin-row.wide{grid-template-columns:minmax(0,1fr) 90px 90px 120px}.admin-row div{gap:3px;min-width:0;display:grid}.admin-row strong,.admin-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-row span{color:var(--muted);font-size:12px}.admin-preview{object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);width:100%;max-height:180px}.admin-stats{grid-template-columns:repeat(4,1fr)}.access-denied h1{font-size:28px;font-weight:950}@media (width<=760px){.mobile-header,.bottom-nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fffffffa}.mobile-header{background:#f7faf8fa}.login-screen{grid-template-columns:1fr;gap:14px;padding:14px}.login-visual{min-height:430px;padding:22px}.brand-card{min-height:220px}.login-copy h1{font-size:42px}.admin-shell{grid-template-columns:1fr}.admin-sidebar{z-index:20;grid-template-columns:repeat(3,1fr);height:auto;padding:10px;position:sticky;top:0;overflow-x:auto}.admin-brand{grid-column:1/-1;padding:4px}.admin-sidebar button{min-width:max-content}.admin-content{padding:14px}.admin-grid{grid-template-columns:1fr}.admin-stats{grid-template-columns:repeat(2,1fr)}.admin-row,.admin-row.wide{grid-template-columns:minmax(0,1fr) auto}.admin-row .icon-button{width:36px;height:36px}}@media (prefers-reduced-motion:reduce){.mini-piece.active,.svg-fragment.active,.loading-stack span{animation:none}.svg-fragment{transition:none}}@media (width<=380px){.content-frame{padding-inline:10px}.stats-grid,.quick-login-row,.two-col{grid-template-columns:1fr}.ball-progress{grid-template-rows:repeat(3,82px)}.venue-card{grid-template-columns:1fr}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
