/* ============================================================================
   Axify Network site stylesheet. Built from the website theme (index.css +
   custom.css). Served to the store through asset("generic.css") so the store
   and axifynetwork.xyz render from the exact same rules.
   ============================================================================ */
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:JetBrains Mono,ui-monospace,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}[hidden]:where(:not([hidden=until-found])){display:none}:root{--c-accent:var(--ghost-accent-color,#1e90ff);--c-accent-2:#7dd3fc;--c-bg-0:#05070d;--c-bg-1:#090e1a;--c-bg-2:#0e1628;--c-surface:rgba(14,22,40,.55);--c-surface-2:rgba(14,22,40,.82);--c-border:color-mix(in srgb,var(--c-accent) 16%,hsla(0,0%,100%,.06));--c-border-strong:color-mix(in srgb,var(--c-accent) 45%,transparent);--c-text:#e8eefb;--c-muted:#97a6c2;--c-dim:#5d6b85;--glow:0 0 48px color-mix(in srgb,var(--c-accent) 45%,transparent);--ease-out:cubic-bezier(0.2,0.8,0.2,1);--nav-h:76px;--hero-poster:none}html{scroll-padding-top:calc(var(--nav-h) + 16px);-webkit-text-size-adjust:100%;color-scheme:dark}body{background-color:var(--c-bg-0);color:var(--c-text);font-family:var(--gh-font-body,Manrope),system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;background-image:radial-gradient(1200px 600px at 15% -10%,color-mix(in srgb,var(--c-accent) 14%,transparent),transparent 60%),radial-gradient(900px 500px at 90% 10%,color-mix(in srgb,var(--c-accent-2) 8%,transparent),transparent 60%);min-height:100dvh}::-moz-selection{background:color-mix(in srgb,var(--c-accent) 60%,transparent);color:#fff}::selection{background:color-mix(in srgb,var(--c-accent) 60%,transparent);color:#fff}*{scrollbar-color:color-mix(in srgb,var(--c-accent) 40%,transparent) transparent;scrollbar-width:thin}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--c-accent) 35%,transparent);border:3px solid var(--c-bg-0);border-radius:999px}[x-cloak]{display:none!important}:focus-visible{border-radius:6px;outline:2px solid var(--c-accent-2);outline-offset:3px}h1,h2,h3,h4{color:var(--c-text);font-family:var(--gh-font-heading,Unbounded),system-ui,sans-serif;text-wrap:balance}p{text-wrap:pretty}img,video{height:auto;max-width:100%}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-bottom:1.2em;margin-top:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-bottom:1.25em;margin-top:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-bottom:1.25em;margin-top:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-bottom:3em;margin-top:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){border-inline-start-color:var(--tw-prose-quote-borders);border-inline-start-width:.25rem;color:var(--tw-prose-quotes);font-style:italic;font-weight:500;margin-bottom:1.6em;margin-top:1.6em;padding-inline-start:1em;quotes:"\201C""\201D""\2018""\2019"}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:2.25em;font-weight:800;line-height:1.1111111;margin-bottom:.8888889em;margin-top:0}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.5em;font-weight:700;line-height:1.3333333;margin-bottom:1em;margin-top:2em}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-size:1.25em;font-weight:600;line-height:1.6;margin-bottom:.6em;margin-top:1.6em}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;line-height:1.5;margin-bottom:.5em;margin-top:1.5em}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-bottom:2em;margin-top:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);color:var(--tw-prose-kbd);font-family:inherit;font-size:.875em;font-weight:500;padding-inline-end:.375em;padding-bottom:.1875em;padding-top:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:var(--tw-prose-pre-bg);border-radius:.375rem;color:var(--tw-prose-pre-code);font-size:.875em;font-weight:400;line-height:1.7142857;margin-bottom:1.7142857em;margin-top:1.7142857em;overflow-x:auto;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-top:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em;line-height:1.7142857;margin-bottom:2em;margin-top:2em;table-layout:auto;width:100%}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-th-borders);border-bottom-width:1px}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em;vertical-align:bottom}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-color:var(--tw-prose-td-borders);border-bottom-width:1px}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-color:var(--tw-prose-th-borders);border-top-width:1px}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5em;margin-top:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.75em;margin-top:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em;margin-top:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-top:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2em;margin-top:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.7142857}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-bottom:.8888889em;margin-top:.8888889em}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-inline-start:1.1111111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1428571em;line-height:1.2;margin-bottom:.8em;margin-top:0}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.4285714em;line-height:1.4;margin-bottom:.8em;margin-top:1.6em}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-bottom:.4444444em;margin-top:1.5555556em}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.4285714;margin-bottom:.5714286em;margin-top:1.4285714em}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.8571429em;padding-inline-end:.3571429em;padding-bottom:.1428571em;padding-top:.1428571em;padding-inline-start:.3571429em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.25rem;font-size:.8571429em;line-height:1.6666667;margin-bottom:1.6666667em;margin-top:1.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-top:.6666667em;padding-inline-start:1em}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.2857143em;margin-top:.2857143em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5714286em;margin-top:.5714286em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.5714286em;margin-top:.5714286em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em;margin-top:1.1428571em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;padding-inline-start:1.5714286em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:2.8571429em;margin-top:2.8571429em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.6666667em;padding-top:.6666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7142857em;margin-top:1.7142857em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-invert{--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:var(--tw-prose-invert-code);--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.prose-axify{--tw-prose-body:var(--c-muted);--tw-prose-headings:var(--c-text);--tw-prose-links:var(--c-accent);--tw-prose-bold:var(--c-text);--tw-prose-bullets:var(--c-accent);--tw-prose-hr:var(--c-border);--tw-prose-quotes:var(--c-text);--tw-prose-quote-borders:var(--c-accent);--tw-prose-captions:var(--c-dim);--tw-prose-code:var(--c-accent-2);--tw-prose-pre-bg:var(--c-bg-1);--tw-prose-th-borders:var(--c-border);--tw-prose-td-borders:var(--c-border)}.container-x{margin-left:auto;margin-right:auto;max-width:1280px;padding-left:1rem;padding-right:1rem;width:100%}@media (min-width:640px){.container-x{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1024px){.container-x{padding-left:2rem;padding-right:2rem}}.glass{backdrop-filter:blur(18px) saturate(150%);background:var(--c-surface)}.glass,.glass-strong{border:1px solid var(--c-border)}.glass-strong{backdrop-filter:blur(24px) saturate(160%);background:var(--c-surface-2)}.gradient-border{isolation:isolate;position:relative}.gradient-border:before{animation:spin-angle 6s linear infinite;background:conic-gradient(from var(--angle),transparent 0deg,transparent 200deg,var(--c-accent) 280deg,var(--c-accent-2) 320deg,transparent 1turn);border-radius:inherit;content:"";inset:0;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:1px;pointer-events:none;position:absolute;z-index:1}@keyframes spin-angle{to{--angle:360deg}}.btn{align-items:center;border-radius:9999px;display:inline-flex;font-size:.875rem;font-weight:700;gap:.5rem;justify-content:center;letter-spacing:.025em;line-height:1.25rem;padding:.75rem 1.25rem;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out),background-color .25s,border-color .25s,filter .25s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;will-change:transform}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0) scale(.98)}.btn svg{fill:currentColor;flex:none;height:18px;width:18px}.btn-primary{background:linear-gradient(120deg,var(--c-accent),var(--c-accent-2));background-size:160% 160%;box-shadow:0 8px 24px -8px color-mix(in srgb,var(--c-accent) 70%,transparent),inset 0 1px 0 hsla(0,0%,100%,.35);color:var(--c-bg-0)}.btn-primary:hover{box-shadow:0 14px 34px -10px color-mix(in srgb,var(--c-accent) 90%,transparent),inset 0 1px 0 hsla(0,0%,100%,.4);filter:brightness(1.08)}.btn-ghost{backdrop-filter:blur(18px) saturate(150%);background:var(--c-surface);border:1px solid var(--c-border);color:var(--c-text)}.btn-ghost:hover{border-color:var(--c-border-strong);box-shadow:var(--glow)}.btn-discord{background:#5865f2;box-shadow:0 8px 24px -8px rgba(88,101,242,.8),inset 0 1px 0 hsla(0,0%,100%,.25);color:#fff}.btn-discord:hover{background:#6b76f5}.btn-icon{border-radius:9999px;height:2.75rem;padding:0;width:2.75rem}.ip-pill{align-items:center;backdrop-filter:blur(18px) saturate(150%);background:var(--c-surface);border:1px solid var(--c-border);border-radius:9999px;color:var(--c-text);display:inline-flex;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.875rem;gap:.75rem;letter-spacing:.025em;line-height:1.25rem;padding:.375rem .375rem .375rem 1rem;transition:border-color .25s,box-shadow .25s,transform .25s var(--ease-out)}.ip-pill:hover{border-color:var(--c-border-strong);box-shadow:var(--glow);transform:translateY(-2px)}.ip-pill .ip-btn{align-items:center;background:linear-gradient(120deg,var(--c-accent),var(--c-accent-2));border-radius:9999px;color:var(--c-bg-0);display:inline-flex;font-family:var(--gh-font-body,Manrope),system-ui,sans-serif;font-size:.75rem;font-weight:700;gap:.375rem;height:2.25rem;letter-spacing:.05em;line-height:1rem;padding-left:.875rem;padding-right:.875rem;text-transform:uppercase}.ip-pill .ip-btn svg{fill:currentColor;height:14px;width:14px}.ip-pill.is-lg{font-size:1rem;line-height:1.5rem;padding-bottom:.5rem;padding-left:1.25rem;padding-top:.5rem}.ip-pill.is-lg .ip-btn{font-size:.875rem;height:2.75rem;line-height:1.25rem;padding-left:1.25rem;padding-right:1.25rem}.status-dot{background:var(--c-dim);border-radius:9999px;box-shadow:0 0 0 0 transparent;display:inline-block;height:.625rem;width:.625rem}body[data-online=true] .status-dot{animation:glow-pulse 2.4s ease-in-out infinite;background:#34d399;box-shadow:0 0 12px #34d399}body[data-online=false] .status-dot{background:#f87171;box-shadow:0 0 10px #f87171}.chip{align-items:center;background:color-mix(in srgb,var(--c-accent) 10%,transparent);border-color:var(--c-border);border-radius:9999px;border-width:1px;color:var(--c-text);display:inline-flex;font-size:.75rem;font-weight:600;gap:.375rem;letter-spacing:.025em;line-height:1rem;padding:.25rem .75rem}.chip svg{fill:currentColor;height:14px;width:14px}.badge{background:linear-gradient(120deg,var(--c-accent),var(--c-accent-2));border-radius:9999px;box-shadow:0 0 0 2px var(--c-bg-0);color:var(--c-bg-0);font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;font-weight:700;line-height:1rem;min-width:1.5rem;padding:.125rem .375rem;position:absolute;right:-.5rem;text-align:center;top:-.5rem}.site-nav{background:linear-gradient(180deg,rgba(5,7,13,.75),rgba(5,7,13,0));border-bottom:1px solid transparent;transition:background-color .35s,border-color .35s,box-shadow .35s}.site-nav.is-open,.site-nav.is-scrolled{backdrop-filter:blur(20px) saturate(160%);background:rgba(5,7,13,.72);border-bottom-color:var(--c-border);box-shadow:0 10px 40px -20px rgba(0,0,0,.8)}.nav-link{align-items:center;border-radius:9999px;color:var(--c-muted);display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;line-height:1.25rem;padding:.5rem 1rem;position:relative;transition:color .25s,background-color .25s}.nav-link svg{fill:currentColor;height:16px;opacity:.8;width:16px}.nav-link:hover{background:color-mix(in srgb,var(--c-accent) 10%,transparent);color:var(--c-text)}.nav-link[aria-current=page]{background:color-mix(in srgb,var(--c-accent) 16%,transparent);box-shadow:inset 0 0 0 1px var(--c-border-strong),0 0 24px -6px color-mix(in srgb,var(--c-accent) 60%,transparent);color:var(--c-text)}.nav-link[aria-current=page]:after{background:linear-gradient(90deg,var(--c-accent),var(--c-accent-2));border-radius:3px;bottom:-7px;box-shadow:0 0 10px var(--c-accent);content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:22px}.nav-link-mobile{align-items:center;border:1px solid transparent;border-radius:1rem;color:var(--c-text);display:flex;font-size:1.125rem;font-weight:700;gap:.75rem;line-height:1.75rem;padding:.875rem 1rem}.nav-link-mobile svg{fill:var(--c-accent);height:20px;width:20px}.nav-link-mobile[aria-current=page]{background:color-mix(in srgb,var(--c-accent) 12%,transparent);border-color:var(--c-border-strong)}.hamburger{backdrop-filter:blur(18px) saturate(150%);background:var(--c-surface);border:1px solid var(--c-border);display:grid;height:2.75rem;place-items:center;position:relative;width:2.75rem}.hamburger,.hamburger span{border-radius:9999px}.hamburger span{background-color:var(--c-text);display:block;height:.125rem;position:absolute;transition:transform .3s var(--ease-out),opacity .2s;width:1.25rem}.hamburger span:first-child{transform:translateY(-6px)}.hamburger span:nth-child(3){transform:translateY(6px)}.is-open .hamburger span:first-child{transform:rotate(45deg)}.is-open .hamburger span:nth-child(2){opacity:0;transform:scaleX(0)}.is-open .hamburger span:nth-child(3){transform:rotate(-45deg)}.hero-bg{background:var(--c-bg-0);inset:0;overflow:hidden;position:absolute;z-index:0}.hero-media{animation:kenburns 45s ease-in-out infinite;filter:saturate(1.15) contrast(1.05);height:108%;inset:-4%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;opacity:0;position:absolute;transform-origin:center;transition:opacity 1.2s ease;width:108%}.hero-media.is-ready{opacity:1}.hero-video{animation:none;height:100%;inset:0;width:100%}.hero-fog{inset:-20% -20%;mix-blend-mode:screen;opacity:.55;pointer-events:none;position:absolute}.hero-fog.a{animation:fog-a 60s ease-in-out infinite alternate;background:radial-gradient(40% 50% at 30% 70%,color-mix(in srgb,var(--c-accent) 35%,transparent),transparent 70%),radial-gradient(30% 40% at 75% 30%,color-mix(in srgb,var(--c-accent-2) 25%,transparent),transparent 70%);filter:blur(40px)}.hero-fog.b{animation:fog-b 80s ease-in-out infinite alternate;background:radial-gradient(35% 45% at 70% 75%,color-mix(in srgb,var(--c-accent-2) 22%,transparent),transparent 70%),radial-gradient(25% 35% at 20% 25%,color-mix(in srgb,var(--c-accent) 20%,transparent),transparent 70%);filter:blur(50px)}.hero-vignette{background:linear-gradient(to bottom,rgba(5,7,13,.55) 0,rgba(5,7,13,.25) 35%,rgba(5,7,13,.55) 70%,var(--c-bg-0) 100%),radial-gradient(80% 60% at 50% 50%,transparent 40%,rgba(5,7,13,.6) 100%)}.hero-grid,.hero-vignette{inset:0;pointer-events:none;position:absolute}.hero-grid{background-image:linear-gradient(color-mix(in srgb,var(--c-accent) 12%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--c-accent) 12%,transparent) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(60% 50% at 50% 60%,#000 20%,transparent 80%);mask-image:radial-gradient(60% 50% at 50% 60%,#000 20%,transparent 80%);opacity:.35}.hero-particles{height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.text-gradient{background:linear-gradient(100deg,#fff 0,var(--c-accent-2) 45%,var(--c-accent) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.text-glow{text-shadow:0 0 30px color-mix(in srgb,var(--c-accent) 55%,transparent),0 2px 0 rgba(0,0,0,.4)}.scroll-cue{backdrop-filter:blur(18px) saturate(150%);background:var(--c-surface);border:1px solid var(--c-border);bottom:1.5rem;display:grid;height:2.75rem;left:50%;position:absolute;width:2.75rem;--tw-translate-x:-50%;animation:bob 1.8s ease-in-out infinite;border-radius:9999px;color:var(--c-muted);place-items:center;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scroll-cue svg{fill:currentColor;height:18px;width:18px}.logo-bubble{aspect-ratio:1;display:block;margin-inline:auto;outline:none;position:relative;width:min(72vw,400px)}.bubble-anim{animation:float 6s ease-in-out infinite}.bubble-glow{animation:glow-pulse 4.5s ease-in-out infinite;background:radial-gradient(circle,color-mix(in srgb,var(--c-accent) 55%,transparent) 0,color-mix(in srgb,var(--c-accent) 15%,transparent) 40%,transparent 70%);border-radius:50%;filter:blur(20px);inset:-18%;position:absolute}.bubble-logo{filter:drop-shadow(0 24px 40px color-mix(in srgb,var(--c-accent) 55%,transparent)) drop-shadow(0 0 2px rgba(0,0,0,.6));height:92%;inset:4%;-o-object-fit:contain;object-fit:contain;position:absolute;width:92%}.stat{align-items:center;backdrop-filter:blur(18px) saturate(150%);background:var(--c-surface);border:1px solid var(--c-border);border-radius:1rem;display:flex;flex-direction:column;gap:.25rem;justify-content:center;overflow:hidden;padding:1.5rem 1rem;position:relative;text-align:center}.stat:before{background:radial-gradient(60% 80% at 50% 0,color-mix(in srgb,var(--c-accent) 18%,transparent),transparent 70%);content:"";inset:0;pointer-events:none;position:absolute}.stat-value{font-family:var(--gh-font-heading,Unbounded),system-ui,sans-serif;font-size:1.875rem;font-weight:700;line-height:2.25rem}@media (min-width:640px){.stat-value{font-size:2.25rem;line-height:2.5rem}}.stat-value{color:#fff}.stat-label{color:var(--c-muted);font-size:.75rem;font-weight:600;letter-spacing:.18em;line-height:1rem;text-transform:uppercase}.stat svg{fill:var(--c-accent-2);height:22px;width:22px}.card-glass{backdrop-filter:blur(18px) saturate(150%);background:var(--c-surface);border:1px solid var(--c-border);border-radius:1rem;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .35s}.card-glass:hover{border-color:var(--c-border-strong);box-shadow:var(--glow),0 30px 60px -30px rgba(0,0,0,.8);transform:translateY(-6px)}.card-media{aspect-ratio:16/9;background:var(--c-bg-2);overflow:hidden;position:relative;width:100%}.card-media img{height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .7s var(--ease-out);width:100%}.card-glass:hover .card-media img{transform:scale(1.06)}.card-media:after{background:linear-gradient(0deg,rgba(5,7,13,.7),transparent 55%);content:"";inset:0;position:absolute}.card-title{color:#fff;font-family:var(--gh-font-heading,Unbounded),system-ui,sans-serif;font-size:1.125rem;font-weight:700;line-height:1.75rem;line-height:1.375}.card-title a{color:inherit}.card-title a:after{content:"";inset:0;position:absolute}.card-meta{align-items:center;color:var(--c-dim);-moz-column-gap:.75rem;column-gap:.75rem;display:flex;flex-wrap:wrap;font-size:.75rem;font-weight:500;line-height:1rem;row-gap:.25rem}.card-meta svg{fill:currentColor;height:14px;width:14px}.section-title{font-family:var(--gh-font-heading,Unbounded),system-ui,sans-serif;font-size:1.5rem;font-weight:700;line-height:2rem}@media (min-width:640px){.section-title{font-size:1.875rem;line-height:2.25rem}}@media (min-width:1024px){.section-title{font-size:2.25rem;line-height:2.5rem}}.section-title{color:#fff}.section-kicker{align-items:center;color:var(--c-accent-2);display:inline-flex;font-size:.75rem;font-weight:700;gap:.5rem;letter-spacing:.22em;line-height:1rem;margin-bottom:.75rem;text-transform:uppercase}.section-kicker:before{background:linear-gradient(90deg,var(--c-accent),var(--c-accent-2));border-radius:2px;content:"";height:2px;width:24px}.page-hero{isolation:isolate;overflow:hidden;padding-bottom:3rem;padding-top:calc(var(--nav-h) + 3.5rem);position:relative}.page-hero-bg{inset:0;overflow:hidden;position:absolute;z-index:-1}.page-hero-bg img{filter:saturate(1.1);height:100%;-o-object-fit:cover;object-fit:cover;opacity:.35;width:100%}.page-hero-bg:after{background:linear-gradient(to bottom,rgba(5,7,13,.5),var(--c-bg-0)),radial-gradient(60% 80% at 50% 0,color-mix(in srgb,var(--c-accent) 22%,transparent),transparent 70%);content:"";inset:0;position:absolute}.page-hero-bg .aurora{animation:aurora 18s ease-in-out infinite;background:radial-gradient(35% 40% at 30% 40%,color-mix(in srgb,var(--c-accent) 30%,transparent),transparent 70%),radial-gradient(30% 35% at 70% 60%,color-mix(in srgb,var(--c-accent-2) 22%,transparent),transparent 70%);filter:blur(50px);inset:-30%;mix-blend-mode:screen;position:absolute}html.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);transition-delay:calc(var(--i, 0)*90ms)}html.js .reveal.is-visible{opacity:1;transform:none}.toast{align-items:center;backdrop-filter:blur(24px) saturate(160%);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:9999px;bottom:1.5rem;box-shadow:var(--glow);color:#fff;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;left:50%;line-height:1.25rem;padding:.75rem 1.25rem;position:fixed;transform:translateX(-50%);z-index:70}.toast svg{fill:#34d399;height:18px;width:18px}.progress{background:linear-gradient(90deg,var(--c-accent),var(--c-accent-2));height:3px;left:0;pointer-events:none;position:fixed;top:0;transform:scaleX(var(--p,0));transform-origin:0 50%;width:100%;z-index:60}.input{backdrop-filter:blur(18px) saturate(150%);background:var(--c-surface);border:1px solid var(--c-border);border-radius:.75rem;color:var(--c-text);font-size:1rem;line-height:1.5rem;padding:.75rem 1rem;width:100%}.input::-moz-placeholder{color:var(--c-dim)}.input::placeholder{color:var(--c-dim)}.input{transition:border-color .2s,box-shadow .2s}.input:focus{border-color:var(--c-border-strong);box-shadow:var(--glow);outline:none}.tab-btn{background:transparent;border-color:var(--c-border);border-radius:9999px;border-width:1px;color:var(--c-muted);font-size:.875rem;font-weight:700;line-height:1.25rem;padding:.5rem 1rem;transition:all .25s}.tab-btn:hover{border-color:var(--c-border-strong);color:var(--c-text)}.tab-btn.is-active{background:linear-gradient(120deg,var(--c-accent),var(--c-accent-2));border-color:transparent;box-shadow:0 8px 20px -8px color-mix(in srgb,var(--c-accent) 80%,transparent);color:var(--c-bg-0)}.staff-card{align-items:center;backdrop-filter:blur(18px) saturate(150%);background:var(--c-surface);border:1px solid var(--c-border);border-radius:1rem;display:flex;flex-direction:column;overflow:hidden;padding:1.25rem 1rem 1rem;position:relative;text-align:center;transition:transform .3s var(--ease-out),border-color .3s,box-shadow .3s}.staff-card:hover{border-color:var(--c-border-strong);box-shadow:var(--glow);transform:translateY(-4px)}.staff-card h4{color:#fff;font-family:var(--gh-font-heading,Unbounded),system-ui,sans-serif;font-size:.875rem;font-weight:700;line-height:1.25rem}.staff-card p{color:var(--c-accent-2);font-size:.75rem;font-weight:600;letter-spacing:.05em;line-height:1rem;text-transform:uppercase}.staff-card img{filter:drop-shadow(0 10px 20px rgba(0,0,0,.6));image-rendering:pixelated;margin-bottom:-6rem;margin-top:.75rem}.vote-link{align-items:center;backdrop-filter:blur(18px) saturate(150%);background:var(--c-surface);border:1px solid var(--c-border);border-radius:1rem;display:flex;gap:.75rem;justify-content:space-between;padding:1rem;transition:transform .3s var(--ease-out),border-color .3s,box-shadow .3s}.vote-link:hover{border-color:var(--c-border-strong);box-shadow:var(--glow);transform:translateY(-3px)}.vote-link svg{fill:var(--c-accent-2);flex:none;height:20px;width:20px}.kg-width-wide{position:relative}@media (min-width:1024px){.kg-width-wide{margin-left:-4rem;margin-right:-4rem}}.kg-width-full{position:relative}@media (min-width:1024px){.kg-width-full{margin-left:-6rem;margin-right:-6rem}}.kg-width-full img,.kg-width-wide img{border-radius:1rem;width:100%}.kg-card{border-radius:1rem}.kg-toggle-card{border:1px solid var(--c-border);border-radius:1rem}.kg-toggle-heading svg{fill:var(--c-accent)}.kg-callout-card{border-radius:1rem}.kg-button-card .kg-btn{border-radius:999px}.kg-bookmark-container{border:1px solid var(--c-border)!important;border-radius:1rem!important}.kg-gallery-image img{border-radius:.75rem}.kg-embed-card iframe{border-radius:1rem}.prose-axify :where(a):not(:where(.kg-btn)){text-decoration-color:color-mix(in srgb,var(--c-accent) 50%,transparent);text-underline-offset:3px}.prose-axify :where(a):hover{color:var(--c-accent-2)}.prose-axify :where(h2,h3,h4){font-family:var(--gh-font-heading,Unbounded),system-ui,sans-serif}.prose-axify :where(img){border-radius:1rem}.prose-axify :where(code):not(pre code){background:color-mix(in srgb,var(--c-accent) 12%,transparent);border-radius:.4em;padding:.15em .4em}.prose-axify :where(code):after,.prose-axify :where(code):before{content:none}.prose-axify :where(pre){border:1px solid var(--c-border);border-radius:1rem}.prose-axify :where(blockquote){background:color-mix(in srgb,var(--c-accent) 6%,transparent);border-left-width:3px;border-radius:0 1rem 1rem 0;padding:.5rem 1.25rem}.prose-axify :where(hr){border-color:var(--c-border)}.prose-axify :where(table){border:1px solid var(--c-border);border-radius:.75rem;overflow:hidden}.toc-panel{backdrop-filter:blur(24px) saturate(160%);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:1rem;max-height:60vh;overflow:auto;padding:1rem}.toc-panel a{border-radius:.5rem;color:var(--c-muted);display:block;font-size:.875rem;line-height:1.25rem;padding:.375rem .75rem;transition:all .2s}.toc-panel a:hover{background:color-mix(in srgb,var(--c-accent) 10%,transparent);color:var(--c-text)}.toc-panel a.is-active{background:color-mix(in srgb,var(--c-accent) 14%,transparent);color:var(--c-accent-2)}.toc-toggle{backdrop-filter:blur(24px) saturate(160%);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:9999px;box-shadow:var(--glow);color:var(--c-text);display:grid;height:3rem;place-items:center;width:3rem}.toc-toggle svg{fill:currentColor;height:22px;width:22px}.mobile-links .nav-link{border:1px solid transparent;border-radius:1rem;color:var(--c-text);display:flex;font-size:1.125rem;font-weight:700;line-height:1.75rem;padding:.875rem 1rem;width:100%}.mobile-links .nav-link svg{fill:var(--c-accent);height:20px;opacity:1;width:20px}.mobile-links .nav-link[aria-current=page]{border-color:var(--c-border-strong);box-shadow:none}.mobile-links .nav-link[aria-current=page]:after{display:none}.footer-link{color:var(--c-muted);transition:color .2s}.footer-link:hover{color:var(--c-accent-2)}.footer-nav .nav-link{background:none!important;border-radius:0;box-shadow:none!important;color:var(--c-muted);display:block;font-size:.875rem;font-weight:500;line-height:1.25rem;padding:0}.footer-nav .nav-link:hover{color:var(--c-accent-2)}.footer-nav .nav-link svg,.footer-nav .nav-link:after{display:none}.enter{animation:fade-up .9s var(--ease-out) both;animation-delay:calc(var(--i, 0)*.12s + 80ms)}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.ip-pill .ip-btn{white-space:nowrap}.logo-bubble.enter{animation-delay:.05s;animation-duration:1s;animation-name:logo-pop;animation-timing-function:cubic-bezier(.22,1.6,.36,1)}@keyframes logo-pop{0%{opacity:0;transform:scale(.04)}30%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.logo-bubble{aspect-ratio:1.35;width:min(90vw,660px)}.bubble-logo{height:100%;inset:0;width:100%}.bubble-glow{border-radius:40%;filter:blur(48px);inset:6%;opacity:.45}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-right-2{right:-.5rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-16{bottom:4rem}.bottom-6{bottom:1.5rem}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:.75rem}.left-4{left:1rem}.right-3{right:.75rem}.top-0{top:0}.top-3{top:.75rem}.isolate{isolation:isolate}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.mx-auto{margin-left:auto;margin-right:auto}.-mb-24{margin-bottom:-6rem}.-mt-12{margin-top:-3rem}.-mt-14{margin-top:-3.5rem}.-mt-4{margin-top:-1rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-auto{margin-left:auto}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.\!hidden{display:none!important}.hidden{display:none}.aspect-\[16\/9\]{aspect-ratio:16/9}.aspect-\[21\/9\]{aspect-ratio:21/9}.\!h-10{height:2.5rem!important}.\!h-5{height:1.25rem!important}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.max-h-\[480px\]{max-height:480px}.min-h-\[100svh\]{min-height:100svh}.min-h-\[80svh\]{min-height:80svh}.\!w-10{width:2.5rem!important}.\!w-5{width:1.25rem!important}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-\[1\.5rem\]{min-width:1.5rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[1280px\]{max-width:1280px}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-2{--tw-translate-y:-0.5rem}.translate-y-0{--tw-translate-y:0px}.translate-y-0,.translate-y-2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-2{--tw-translate-y:0.5rem}.translate-y-4{--tw-translate-y:1rem}.rotate-180,.translate-y-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-staff-cards{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-y-1{row-gap:.25rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.whitespace-nowrap{white-space:nowrap}.text-wrap{text-wrap:wrap}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-line{border-color:var(--c-border)}.border-red-500\/40{border-color:rgba(239,68,68,.4)}.\!bg-accent{background-color:var(--c-accent)!important}.bg-bg-0{background-color:var(--c-bg-0)}.bg-black\/15{background-color:rgba(0,0,0,.15)}.bg-red-500\/10{background-color:rgba(239,68,68,.1)}.bg-white\/5{background-color:hsla(0,0%,100%,.05)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-bg-2{--tw-gradient-from:var(--c-bg-2) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-bg-0{--tw-gradient-to:var(--c-bg-0) var(--tw-gradient-to-position)}.fill-accent-2{fill:var(--c-accent-2)}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-14{padding-bottom:3.5rem;padding-top:3.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pb-10{padding-bottom:2.5rem}.pb-24{padding-bottom:6rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pr-1\.5{padding-right:.375rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-\[calc\(var\(--nav-h\)\+2rem\)\]{padding-top:calc(var(--nav-h) + 2rem)}.text-center{text-align:center}.font-body{font-family:var(--gh-font-body,Manrope),system-ui,sans-serif}.font-display{font-family:var(--gh-font-heading,Unbounded),system-ui,sans-serif}.font-mono{font-family:JetBrains Mono,ui-monospace,monospace}.\!text-xl{font-size:1.25rem!important;line-height:1.75rem!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[11px\]{font-size:11px}.text-\[clamp\(1\.75rem\2c 5vw\2c 3\.25rem\)\]{font-size:clamp(1.75rem,5vw,3.25rem)}.text-\[clamp\(1\.75rem\2c 5vw\2c 3\.5rem\)\]{font-size:clamp(1.75rem,5vw,3.5rem)}.text-\[clamp\(5rem\2c 20vw\2c 11rem\)\]{font-size:clamp(5rem,20vw,11rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-\[1\.05\]{line-height:1.05}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.22em\]{letter-spacing:.22em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.\!text-bg-0{color:var(--c-bg-0)!important}.text-accent-2{color:var(--c-accent-2)}.text-bg-0{color:var(--c-bg-0)}.text-dim{color:var(--c-dim)}.text-muted{color:var(--c-muted)}.text-text{color:var(--c-text)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-\[\.07\]{opacity:.07}.mix-blend-overlay{mix-blend-mode:overlay}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-line{--tw-ring-color:var(--c-border)}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{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)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.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)}.backdrop-filter{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.bg-noise{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='a'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2' stitchTiles='stitch' type='fractalNoise'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='.5'/%3E%3C/svg%3E");background-size:160px 160px}.mask-fade-b{-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent)}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}@property --angle{syntax:"<angle>";inherits:false;initial-value:0deg}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}html.js .reveal{opacity:1;transform:none}.logo-bubble{transform:none!important}.hero-media{opacity:1;transform:none}}@media (min-width:1024px){.lg\:prose-lg{font-size:1.125rem;line-height:1.7777778}.lg\:prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.lg\:prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-bottom:1.0909091em;margin-top:1.0909091em}.lg\:prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.6666667em;margin-top:1.6666667em;padding-inline-start:1em}.lg\:prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;line-height:1;margin-bottom:.8333333em;margin-top:0}.lg\:prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;line-height:1.3333333;margin-bottom:1.0666667em;margin-top:1.8666667em}.lg\:prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;line-height:1.5;margin-bottom:.6666667em;margin-top:1.6666667em}.lg\:prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){line-height:1.5555556;margin-bottom:.4444444em;margin-top:1.7777778em}.lg\:prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.lg\:prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.lg\:prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.lg\:prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.lg\:prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.3125rem;font-size:.8888889em;padding-inline-end:.4444444em;padding-bottom:.2222222em;padding-top:.2222222em;padding-inline-start:.4444444em}.lg\:prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.lg\:prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.lg\:prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.lg\:prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){border-radius:.375rem;font-size:.8888889em;line-height:1.75;margin-bottom:2em;margin-top:2em;padding-inline-end:1.5em;padding-bottom:1em;padding-top:1em;padding-inline-start:1.5em}.lg\:prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-inline-start:1.5555556em}.lg\:prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em;padding-inline-start:1.5555556em}.lg\:prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.6666667em;margin-top:.6666667em}.lg\:prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.lg\:prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.lg\:prose-lg :where(.lg\:prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.lg\:prose-lg :where(.lg\:prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.lg\:prose-lg :where(.lg\:prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.lg\:prose-lg :where(.lg\:prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.lg\:prose-lg :where(.lg\:prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.lg\:prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:.8888889em;margin-top:.8888889em}.lg\:prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em;margin-top:1.3333333em}.lg\:prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.lg\:prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-inline-start:1.5555556em}.lg\:prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:3.1111111em;margin-top:3.1111111em}.lg\:prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.lg\:prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.lg\:prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.lg\:prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.lg\:prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.lg\:prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.lg\:prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.lg\:prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.lg\:prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-top:.75em;padding-inline-start:.75em}.lg\:prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.lg\:prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.lg\:prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.7777778em;margin-top:1.7777778em}.lg\:prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0;margin-top:0}.lg\:prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.lg\:prose-lg :where(.lg\:prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.lg\:prose-lg :where(.lg\:prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}}.hover\:bg-black\/30:hover{background-color:rgba(0,0,0,.3)}.hover\:text-accent-2:hover{color:var(--c-accent-2)}.hover\:underline:hover{text-decoration-line:underline}.focus\:not-sr-only:focus{height:auto;margin:0;overflow:visible;padding:0;position:static;width:auto;clip:auto;white-space:normal}.focus\:fixed:focus{position:fixed}.focus\:left-4:focus{left:1rem}.focus\:top-4:focus{top:1rem}.focus\:z-\[80\]:focus{z-index:80}.focus\:rounded-full:focus{border-radius:9999px}.focus\:bg-accent:focus{background-color:var(--c-accent)}.focus\:px-4:focus{padding-left:1rem;padding-right:1rem}.focus\:py-2:focus{padding-bottom:.5rem;padding-top:.5rem}.focus\:font-bold:focus{font-weight:700}.focus\:text-bg-0:focus{color:var(--c-bg-0)}.group:hover .group-hover\:translate-x-1{--tw-translate-x:0.25rem}.group:hover .group-hover\:rotate-6,.group:hover .group-hover\:translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:rotate-6{--tw-rotate:6deg}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.prose-headings\:scroll-mt-28 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){scroll-margin-top:7rem}@media (min-width:375px){.xs\:inline{display:inline}}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:-mt-16{margin-top:-4rem}.sm\:mt-24{margin-top:6rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:gap-4{gap:1rem}.sm\:p-10{padding:2.5rem}.sm\:p-8{padding:2rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:\!text-2xl{font-size:1.5rem!important;line-height:2rem!important}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width:768px){.md\:inline-flex{display:inline-flex}}@media (min-width:1024px){.lg\:left-8{left:2rem}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:ml-0{margin-left:0}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:aspect-auto{aspect-ratio:auto}.lg\:min-h-\[320px\]{min-height:320px}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[0\.36fr_1fr\]{grid-template-columns:.36fr 1fr}.lg\:grid-cols-\[1\.15fr_1fr\]{grid-template-columns:1.15fr 1fr}.lg\:grid-cols-\[1\.4fr_1fr_1fr_1\.2fr\]{grid-template-columns:1.4fr 1fr 1fr 1.2fr}.lg\:grid-cols-vote-2{grid-template-columns:.45fr 1fr}.lg\:grid-cols-vote-3{grid-template-columns:.5fr 1fr .5fr}.lg\:p-8{padding:2rem}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}}
/* Axify nav overrides (hand-written, loaded after index.css) */

/* Big Store button in the middle of the nav */
.nav-store {
    align-items: center;
    display: inline-flex;
    gap: .5rem;
    height: 3rem;
    padding: 0 1.75rem;
    border-radius: 9999px;
    font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif;
    font-size: .95rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--c-bg-0);
    background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2));
    background-size: 160% 160%;
    box-shadow: 0 10px 30px -8px color-mix(in srgb, var(--c-accent) 80%, transparent),
                inset 0 1px 0 hsla(0, 0%, 100%, .35);
    transition: transform .25s var(--ease-out), box-shadow .25s, filter .25s;
}
.nav-store svg { fill: currentColor; height: 18px; width: 18px; }
.nav-store:hover {
    transform: translateY(-2px) scale(1.04);
    filter: brightness(1.08);
    box-shadow: 0 16px 40px -10px color-mix(in srgb, var(--c-accent) 95%, transparent),
                inset 0 1px 0 hsla(0, 0%, 100%, .4);
}

/* Copy-IP button: no address shown, just the status dot + label */
.copy-ip {
    align-items: center;
    display: inline-flex;
    gap: .5rem;
    height: 2.5rem;
    padding: 0 1rem 0 .875rem;
    border-radius: 9999px;
    border: 1px solid var(--c-border);
    background: var(--c-surface);
    backdrop-filter: blur(18px) saturate(150%);
    color: var(--c-text);
    font-size: .8125rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    transition: border-color .25s, box-shadow .25s, transform .25s var(--ease-out), background-color .25s, color .25s;
}
.copy-ip svg { fill: currentColor; height: 15px; width: 15px; }
.copy-ip:hover { border-color: var(--c-border-strong); box-shadow: var(--glow); transform: translateY(-2px); }
.copy-ip.is-copied {
    border-color: #34d399;
    color: #34d399;
    background: color-mix(in srgb, #34d399 12%, var(--c-surface));
    box-shadow: 0 0 18px -4px #34d399;
}
.copy-ip .status-dot { height: .625rem; width: .625rem; }

/* Login button, pinned top-right of the nav */
.nav-login {
    position: absolute; right: 1.25rem; top: 50%; transform: translateY(-50%);
    align-items: center; display: inline-flex; gap: .45rem; height: 2.5rem; padding: 0 1rem;
    border-radius: 9999px; border: 1px solid var(--c-border); background: var(--c-surface);
    backdrop-filter: blur(18px) saturate(150%); color: var(--c-muted);
    font-size: .8125rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap;
    transition: border-color .25s, box-shadow .25s, transform .25s var(--ease-out), color .25s;
}
.nav-login svg { fill: currentColor; height: 14px; width: 14px; }
.nav-login:hover { border-color: var(--c-border-strong); box-shadow: var(--glow); color: var(--c-text); transform: translateY(calc(-50% - 2px)); }
@media (max-width: 1023px) { .nav-login { position: static; transform: none; } .nav-login span { display: none; } .nav-login { padding: 0 .75rem; } }

/* Staff login page */
.auth-wrap { position: relative; min-height: 100svh; display: flex; align-items: center; justify-content: center; padding: calc(var(--nav-h) + 3rem) 1rem 4rem; overflow: hidden; }
.auth-wrap .hero-media { opacity: 1; }
.auth-card { position: relative; z-index: 1; width: 100%; max-width: 26rem; padding: 2.25rem 2rem 1.75rem; border-radius: 1.75rem; text-align: center; box-shadow: 0 30px 80px -30px rgba(0,0,0,.8), 0 0 0 1px var(--c-border); }
.auth-logo { display: block; width: 190px; height: auto; margin: 0 auto 1rem; filter: drop-shadow(0 12px 28px color-mix(in srgb, var(--c-accent) 45%, transparent)); }
.auth-title { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: 1.75rem; font-weight: 800; color: #fff; margin-top: .25rem; }
.auth-sub { color: var(--c-muted); font-size: .9rem; margin-top: .5rem; }
.auth-form { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.5rem; text-align: left; }
.auth-field { display: flex; flex-direction: column; gap: .4rem; }
.auth-field > span { font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.auth-field input, .auth-field textarea { width: 100%; padding: .8rem 1rem; border-radius: .9rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); color: var(--c-text); font: inherit; font-size: .95rem; outline: none; transition: border-color .2s, box-shadow .2s; resize: vertical; }
.auth-field input:focus, .auth-field textarea:focus { border-color: var(--c-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-accent) 25%, transparent); }
.auth-error { color: #fca5a5; font-size: .85rem; font-weight: 600; }
.auth-submit { height: 3rem; font-size: .95rem; }
.auth-submit:disabled { opacity: .6; cursor: wait; }
.auth-foot { margin-top: 1.25rem; font-size: .8rem; color: var(--c-dim); }

/* Staff manage page */
.manage-wrap { padding-top: calc(var(--nav-h) + 3rem); }
.manage-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 2rem; }
.manage-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.manage-grid { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 1024px) { .manage-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.manage-card { border-radius: 1.5rem; overflow: hidden; display: flex; flex-direction: column; }
.manage-media { position: relative; aspect-ratio: 16/9; overflow: hidden; }
.manage-media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(1.1); }
.manage-status { position: absolute; left: .75rem; top: .75rem; padding: .3rem .7rem; border-radius: 9999px; font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; border: 1px solid transparent; backdrop-filter: blur(10px); }
.manage-status.is-live { color: #6ee7b7; background: color-mix(in srgb, #34d399 18%, var(--c-bg-0)); border-color: color-mix(in srgb, #34d399 50%, transparent); }
.manage-status.is-beta { color: var(--c-accent-2); background: color-mix(in srgb, var(--c-accent) 18%, var(--c-bg-0)); border-color: color-mix(in srgb, var(--c-accent) 50%, transparent); }
.manage-status.is-soon { color: #fca5a5; background: color-mix(in srgb, #f87171 18%, var(--c-bg-0)); border-color: color-mix(in srgb, #f87171 50%, transparent); }
.manage-body { display: flex; flex-direction: column; gap: 1rem; padding: 1.25rem; flex: 1; }
.manage-title { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: 1.25rem; font-weight: 800; color: #fff; }
.manage-order { font-size: .75rem; color: var(--c-dim); }
.manage-statusrow { display: flex; flex-wrap: wrap; gap: .4rem; }
.manage-statusrow .tab-btn { font-size: .75rem; padding: .45rem .9rem; }
.manage-btns { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: auto; }
.manage-btns .btn:disabled { opacity: .45; cursor: not-allowed; }

/* Game mode pages */
.gm-hero { min-height: 58svh; display: flex; align-items: center; padding: calc(var(--nav-h) + 3.5rem) 0 4.5rem; }
.gm-hero .hero-media { opacity: 1; animation: none; transform: none; inset: 0; height: 100%; filter: saturate(1.05); object-position: center 40%; }
.gm-hero .hero-fog, .gm-hero .hero-grid { display: none; }
.gm-hero .hero-vignette { background: linear-gradient(to bottom, rgba(5,7,13,.6) 0, rgba(5,7,13,.15) 30%, rgba(5,7,13,.3) 60%, var(--c-bg-0) 100%); }
.gm-hero .container-x { position: relative; }
.gm-hero .container-x::before { content: ""; position: absolute; left: 50%; top: 50%; width: min(100%, 60rem); height: 130%; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(ellipse at center, rgba(5,7,13,.72) 0, rgba(5,7,13,.5) 40%, rgba(5,7,13,0) 72%); z-index: -1; pointer-events: none; }
.gm-hero .container-x { z-index: 10; }
.gm-hero .container-x > * { position: relative; }
.gm-hero .section-kicker, .gm-hero .gm-lead { text-shadow: 0 2px 12px rgba(0,0,0,.8); }
.gm-hero .gm-title { text-shadow: 0 0 30px color-mix(in srgb, var(--c-accent) 55%, transparent), 0 4px 18px rgba(0,0,0,.9); }
.gm-title { font-size: clamp(2.5rem, 7vw, 5rem); line-height: 1; }
.gm-lead { font-size: 1.125rem; max-width: 42rem; }
.gm-badge { align-items: center; display: inline-flex; gap: .5rem; padding: .4rem .9rem; border-radius: 9999px; font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; border: 1px solid transparent; }
.gm-badge-dot { width: .55rem; height: .55rem; border-radius: 9999px; background: currentColor; box-shadow: 0 0 10px currentColor; animation: glow-pulse 2.4s ease-in-out infinite; }
.gm-badge.is-live { color: #34d399; border-color: color-mix(in srgb, #34d399 40%, transparent); background: color-mix(in srgb, #34d399 12%, transparent); }
.gm-badge.is-soon { color: #fbbf24; border-color: color-mix(in srgb, #fbbf24 40%, transparent); background: color-mix(in srgb, #fbbf24 12%, transparent); }

/* Game mode cards: only the Explore button is clickable */
.card-mode .card-title { pointer-events: none; }
.card-explore {
    align-items: center; display: inline-flex; gap: .5rem; align-self: flex-start;
    margin-top: auto; padding: .6rem 1.1rem .6rem 1.25rem; border-radius: 9999px;
    border: 1px solid color-mix(in srgb, #34d399 55%, transparent);
    background: color-mix(in srgb, #34d399 14%, var(--c-bg-0));
    font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #6ee7b7;
    transition: transform .25s var(--ease-out), box-shadow .25s, border-color .25s, background .25s, color .25s;
}
.card-explore svg { fill: currentColor; height: 14px; width: 14px; transition: transform .25s var(--ease-out); }
.card-explore:hover {
    background: linear-gradient(120deg, #34d399, #10b981);
    border-color: transparent; color: #04120c;
    transform: translateY(-2px);
    box-shadow: 0 10px 28px -8px color-mix(in srgb, #34d399 85%, transparent);
}
.card-explore:hover svg { transform: translateX(3px); }
.card-chip-live .status-dot { margin-right: .35rem; }
.card-chip-soon { color: #fca5a5; border-color: color-mix(in srgb, #f87171 50%, transparent); background: color-mix(in srgb, #f87171 16%, var(--c-bg-0)); }
.card-chip-beta { color: var(--c-accent-2); border-color: color-mix(in srgb, var(--c-accent) 55%, transparent); background: color-mix(in srgb, var(--c-accent) 16%, var(--c-bg-0)); }
.chip-dot { display: inline-block; width: .5rem; height: .5rem; margin-right: .4rem; border-radius: 9999px; background: currentColor; box-shadow: 0 0 10px currentColor; animation: glow-pulse 2.4s ease-in-out infinite; }
.card-soon {
    align-items: center; display: inline-flex; gap: .5rem; align-self: flex-start; margin-top: auto;
    padding: .6rem 1.25rem; border-radius: 9999px;
    border: 1px solid color-mix(in srgb, #f87171 55%, transparent);
    background: color-mix(in srgb, #f87171 14%, var(--c-bg-0));
    color: #fca5a5; font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
    cursor: not-allowed; user-select: none;
}
.card-soon::before { content: ""; width: .5rem; height: .5rem; border-radius: 9999px; background: #f87171; box-shadow: 0 0 10px #f87171; }
.gm-badge.is-beta { color: var(--c-accent-2); border-color: color-mix(in srgb, var(--c-accent) 50%, transparent); background: color-mix(in srgb, var(--c-accent) 14%, transparent); }
.gm-badge.is-soon { color: #fca5a5; border-color: color-mix(in srgb, #f87171 45%, transparent); background: color-mix(in srgb, #f87171 12%, transparent); }

/* Game mode artwork: assets/images/modes/mode-*.png (vector source next to them in the working copy) */
.card-mode .card-media img { transition: transform .5s var(--ease-out); }

/* Editor content on game mode pages: h2 = section, lists under it become card grids */
.gm-body .prose h2 { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; letter-spacing: -.01em; margin-top: 2.5rem; }
.gm-body .prose h2:first-child { margin-top: 0; }
.gm-body .prose h2::before { content: ""; display: inline-block; width: 1.25rem; height: 3px; margin-right: .75rem; vertical-align: middle; border-radius: 3px; background: linear-gradient(90deg, var(--c-accent), var(--c-accent-2)); box-shadow: 0 0 10px var(--c-accent); }
.gm-body .prose > p:first-child { font-size: 1.1rem; color: var(--c-muted); }
.gm-body .prose ul { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; gap: .875rem; grid-template-columns: 1fr; }
@media (min-width: 640px)  { .gm-body .prose ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .gm-body .prose ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gm-body .prose ul > li { margin: 0; padding: 1.1rem 1.25rem; border-radius: 1rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-surface) 70%, transparent); font-size: .95rem; line-height: 1.55; transition: transform .25s var(--ease-out), border-color .25s, box-shadow .25s; }
.gm-body .prose ul > li:hover { transform: translateY(-3px); border-color: var(--c-border-strong); box-shadow: var(--glow); }
.gm-body .prose ul > li::before { display: none; }
.gm-body .prose ul > li > strong { display: block; margin-bottom: .3rem; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .95rem; color: var(--c-text); }
.gm-body .prose ol { margin-top: 1rem; }
.gm-body .prose ol > li { margin: .5rem 0; padding-left: .25rem; }
.gm-body .prose ol > li::marker { color: var(--c-accent-2); font-family: JetBrains Mono, ui-monospace, monospace; font-weight: 700; }
.gm-body .prose blockquote { border-left: 3px solid var(--c-accent); background: color-mix(in srgb, var(--c-accent) 8%, transparent); border-radius: 0 1rem 1rem 0; padding: 1rem 1.25rem; font-style: normal; color: var(--c-text); }

/* Stats strip: three tiles */
.stats-3 { display: grid; gap: .75rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .stats-3 { gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Footer layout: brand left, support card right */
.footer-row { display: flex; flex-direction: column; gap: 2.5rem; }
@media (min-width: 768px) {
    .footer-row { flex-direction: row; align-items: center; justify-content: space-between; }
    .footer-row > .glass { flex: 0 0 auto; width: 24rem; }
}

/* Footer brand: full logo, no circle crop */
.footer-brand { display: block; width: min(100%, 260px); }
.footer-brand img {
    display: block;
    width: 100%;
    height: auto;
    filter: drop-shadow(0 12px 28px color-mix(in srgb, var(--c-accent) 45%, transparent));
    transition: transform .3s var(--ease-out);
}
.footer-brand:hover img { transform: translateY(-2px) scale(1.02); }

/* Rules page layout: sticky TOC beside the rulebook on desktop */
.rules-layout { display: grid; gap: 1.5rem; }
.rules-aside { display: none; }
@media (min-width: 1024px) {
    .rules-layout { grid-template-columns: 260px minmax(0, 1fr); align-items: start; }
    .rules-aside { display: block; }
}
.rules-toc { max-height: calc(100vh - var(--nav-h) - 3rem); overflow-y: auto; }

/* Rules page: Factions / Prisons switcher */
.rules-switch { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; margin-bottom: 2rem; }
.rules-switch .tab-btn { font-size: 1rem; padding: .75rem 1.75rem; }
.rules-toc { position: sticky; top: calc(var(--nav-h) + 1.5rem); }
.rules-toc a { display: block; padding: .4rem .75rem; border-radius: .75rem; color: var(--c-muted); font-size: .875rem; font-weight: 600; transition: background-color .2s, color .2s; }
.rules-toc a:hover { background: color-mix(in srgb, var(--c-accent) 10%, transparent); color: var(--c-text); }
.rules-body h2 { scroll-margin-top: calc(var(--nav-h) + 1.5rem); }
.rules-body h3 { scroll-margin-top: calc(var(--nav-h) + 1.5rem); }
.rules-ladder { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 1rem 0 1.5rem; }
.rules-ladder span { display: block; padding: .6rem .75rem; border-radius: .875rem; border: 1px solid var(--c-border); background: var(--c-surface); font-size: .8125rem; color: var(--c-muted); }
.rules-ladder span b { display: block; color: var(--c-text); font-family: JetBrains Mono, ui-monospace, monospace; font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; }
.rules-toc-head { margin: .75rem .75rem .25rem; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent-2); }
.rules-toc-head:first-child { margin-top: 0; }
.rules-intro { font-size: 1.05rem; color: var(--c-muted); padding-bottom: 1.5rem; border-bottom: 1px solid var(--c-border); }
.rules-section { padding-top: 2.5rem; }
.rules-section + .rules-section { margin-top: 1.5rem; border-top: 1px solid var(--c-border); }
.rules-body .rules-section > h2 { margin-top: 0; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; letter-spacing: -.01em; }
.rules-body .rules-section > h2::before { content: ""; display: inline-block; width: 1.25rem; height: 3px; margin-right: .75rem; vertical-align: middle; border-radius: 3px; background: linear-gradient(90deg, var(--c-accent), var(--c-accent-2)); box-shadow: 0 0 10px var(--c-accent); }
.rule { padding: 1.25rem 1.5rem; margin-top: 1rem; border-radius: 1rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-surface) 60%, transparent); }
.rules-body .rule h3 { margin: 0 0 .5rem; font-size: 1.125rem; }
.rules-body .rule p { margin: .5rem 0; font-size: .95rem; }
.rules-body .rule ul, .rules-body .rule ol { margin: .5rem 0; font-size: .95rem; }
.rules-body .rule li { margin: .25rem 0; }
.rules-label { font-weight: 700; color: var(--c-text); margin-top: .75rem !important; }
.rules-note { color: var(--c-muted); font-size: .9rem !important; }
.rules-punish { display: inline-flex; align-items: center; gap: .4rem; margin-top: .25rem; padding: .3rem .7rem; border-radius: 9999px; border: 1px solid color-mix(in srgb, #f87171 40%, transparent); background: color-mix(in srgb, #f87171 10%, transparent); color: #fca5a5; font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }

/* Staff roster tabs: member count pill on each rank */
.tab-count { display: inline-grid; place-items: center; min-width: 1.35rem; height: 1.35rem; margin-left: .4rem; padding: 0 .35rem; border-radius: 9999px; font-family: JetBrains Mono, ui-monospace, monospace; font-size: .68rem; font-weight: 700; color: var(--c-accent-2); background: color-mix(in srgb, var(--c-accent) 14%, var(--c-bg-0)); border: 1px solid color-mix(in srgb, var(--c-accent) 35%, transparent); }
.tab-btn.is-active .tab-count { color: var(--c-bg-0); background: rgba(5, 7, 13, .18); border-color: transparent; }

/* Slightly roomier nav links now that the brand is gone */
.nav-row .nav-link { font-size: .9375rem; padding: .55rem 1.1rem; }

/* Rules GUI (the in-game /rules tree on the web): crumbs, bubble buttons, stage */
.rules-gui { min-height: 40vh; }
.rules-crumbs { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .35rem; margin-bottom: 1.75rem; font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-dim); }
.rules-crumbs button { font: inherit; color: var(--c-muted); background: none; border: 0; cursor: pointer; padding: .4rem .7rem; border-radius: 9999px; transition: color .2s, background-color .2s; }
.rules-crumbs button:hover { color: #fff; background: var(--c-surface); }
.rules-crumbs .sep { opacity: .45; }
.rules-crumbs .here { color: var(--c-accent-2); padding: .4rem .7rem; }
.rules-menu { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); max-width: 62rem; margin: 0 auto 1.5rem; }
.rules-menu.is-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); max-width: 44rem; }
.rbtn { position: relative; display: flex; align-items: center; gap: 1rem; text-align: left; padding: 1rem 1.35rem; border-radius: 9999px; border: 1px solid var(--c-border); background: var(--c-surface); backdrop-filter: blur(14px) saturate(140%); color: var(--c-text); font: inherit; cursor: pointer; overflow: hidden; transition: transform .25s var(--ease-out), border-color .25s, box-shadow .25s, background-color .25s; }
.rbtn::before { content: ""; position: absolute; inset: 0; background: radial-gradient(120% 140% at 0% 50%, color-mix(in srgb, var(--rc, var(--c-accent)) 22%, transparent), transparent 55%); opacity: 0; transition: opacity .25s; pointer-events: none; }
.rbtn:hover { transform: translateY(-3px); border-color: color-mix(in srgb, var(--rc, var(--c-accent)) 55%, transparent); box-shadow: 0 16px 40px -18px color-mix(in srgb, var(--rc, var(--c-accent)) 70%, transparent), 0 0 0 1px color-mix(in srgb, var(--rc, var(--c-accent)) 25%, transparent); }
.rbtn:hover::before { opacity: 1; }
.rbtn .dot { flex: none; width: .8rem; height: .8rem; border-radius: 9999px; background: var(--rc, var(--c-accent)); box-shadow: 0 0 12px var(--rc, var(--c-accent)); }
.rbtn b { display: block; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .95rem; font-weight: 800; color: #fff; line-height: 1.2; }
.rbtn small { display: block; margin-top: .15rem; color: var(--c-muted); font-size: .78rem; }
.rbtn.is-big { flex-direction: column; align-items: center; text-align: center; gap: .6rem; padding: 1.9rem 1.5rem; border-radius: 2rem; }
.rbtn.is-big b { font-size: 1.35rem; }
.rbtn.is-big .dot { width: 1rem; height: 1rem; }
.rules-stage-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.rules-pager { display: flex; flex-wrap: wrap; gap: .4rem; }
.rules-pager .tab-btn { display: inline-flex; align-items: center; gap: .45rem; font-size: .78rem; padding: .5rem .9rem; }
.rules-pager .tab-btn .dot { width: .5rem; height: .5rem; border-radius: 9999px; background: var(--rc, var(--c-accent)); box-shadow: 0 0 8px var(--rc, var(--c-accent)); }
.rules-pager .tab-btn.is-active { border-color: color-mix(in srgb, var(--rc, var(--c-accent)) 60%, transparent); box-shadow: 0 0 18px -6px var(--rc, var(--c-accent)); }
.rules-body .rules-section[hidden] { display: none; }
.rules-body .rules-section > h2 { margin-top: 0; }
.rules-stage-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem; margin-top: 1.5rem; font-size: .9rem; }
.rules-body .rules-section:not([hidden]) { border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important; }
/* Rules stage bar: red BACK on the left, tier switcher centred */
.rules-stage-bar { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.rules-stage-bar::after { content: ""; }
.rules-pager { justify-content: center; grid-column: 2; }
.rules-back { display: inline-flex; align-items: center; gap: .4rem; height: 2.5rem; padding: 0 1.1rem; border-radius: 9999px; border: 1px solid color-mix(in srgb, #f87171 55%, transparent); background: color-mix(in srgb, #f87171 16%, var(--c-bg-0)); color: #fca5a5; font: inherit; font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: transform .25s var(--ease-out), box-shadow .25s, background .25s, color .25s; }
.rules-back:hover { background: linear-gradient(120deg, #f87171, #dc2626); color: #fff; transform: translateY(-2px); box-shadow: 0 10px 28px -8px color-mix(in srgb, #f87171 85%, transparent); }
@media (max-width: 720px) { .rules-stage-bar { grid-template-columns: 1fr; } .rules-pager { grid-column: 1; } .rules-stage-bar::after { display: none; } }

/* Game mode page tabs (enchant categories): buttons row, one panel visible */
.gm-body .prose .gm-tabbar { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 1.25rem 0 1rem; }
.gm-body .prose .gm-tabbar button { font: inherit; font-size: .85rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: .7rem 1.4rem; border-radius: 9999px; border: 1px solid var(--c-border); background: var(--c-surface); color: var(--c-muted); cursor: pointer; transition: transform .25s var(--ease-out), border-color .25s, box-shadow .25s, color .25s, background .25s; }
.gm-body .prose .gm-tabbar button:hover { color: #fff; border-color: var(--c-border-strong); transform: translateY(-2px); }
.gm-body .prose .gm-tabbar button.is-active { color: var(--c-bg-0); background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2)); border-color: transparent; box-shadow: 0 10px 28px -10px color-mix(in srgb, var(--c-accent) 85%, transparent); }
.gm-body .prose .gm-panel[hidden] { display: none; }
.gm-body .prose .gm-panel > p:first-child { color: var(--c-muted); margin-top: 0; }
.gm-body .prose ul > li > strong > em.lvl { display: inline-block; margin-left: .4rem; font-style: normal; font-family: JetBrains Mono, ui-monospace, monospace; font-size: .7rem; color: var(--c-accent-2); vertical-align: middle; }
.gm-body .prose table { width: 100%; border-collapse: separate; border-spacing: 0; margin-top: 1rem; font-size: .9rem; }
.gm-body .prose th { text-align: left; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); padding: .5rem .75rem; border-bottom: 1px solid var(--c-border); }
.gm-body .prose td { padding: .6rem .75rem; border-bottom: 1px solid var(--c-border); color: var(--c-text); }
.gm-body .prose td:last-child { font-family: JetBrains Mono, ui-monospace, monospace; color: var(--c-accent-2); white-space: nowrap; }
.gm-body .prose td.neg { color: #fca5a5; }

/* Scroll cue: pinned to the viewport bottom, gone once you are at the foot of the page */
.scroll-cue { position: fixed !important; left: 50% !important; bottom: 1.5rem !important; top: auto !important; transform: translateX(-50%) !important; z-index: 40; transition: opacity .3s, visibility .3s; }
.scroll-cue.is-gone { opacity: 0; visibility: hidden; pointer-events: none; }

/* Prisons is the purple realm: ONLY the title word takes the realm colour. Kicker, badge,
   chips and buttons keep the site accent. */
.gm-prisons .gm-title .text-gradient { background-image: linear-gradient(120deg, #a855f7, #e879f9); }
.gm-prisons .gm-title { text-shadow: 0 0 30px rgba(168, 85, 247, .6), 0 4px 18px rgba(0,0,0,.9); }
/* Enchant cards: the level sits as a pill in the top-right corner, not inside the title */
.gm-body .prose ul > li { position: relative; }
.gm-body .prose ul > li > .lvl { position: absolute; top: .95rem; right: .95rem; display: inline-flex; align-items: center; height: 1.5rem; padding: 0 .6rem; border-radius: 9999px; font-family: JetBrains Mono, ui-monospace, monospace; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--c-accent-2); background: color-mix(in srgb, var(--c-accent) 14%, var(--c-bg-0)); border: 1px solid color-mix(in srgb, var(--c-accent) 40%, transparent); box-shadow: 0 0 14px -6px var(--c-accent); }
.gm-body .prose ul > li:has(> .lvl) > strong { padding-right: 5.5rem; }
/* Points table: gains green, losses red, one decimal everywhere */
.gm-body .prose td.pos { color: #6ee7b7; font-weight: 700; }
.gm-body .prose td.neg { color: #fca5a5; font-weight: 700; }

/* ===== Phones and small tablets ===== */
/* The open nav used to gain a backdrop-filter, which turns the header into the containing block
   for its fixed children: the menu sheet was trapped inside the 76px bar and never showed.
   A solid bar while open instead; the sheet brings its own glass. */
.site-nav.is-open, .site-nav.is-open.is-scrolled { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(5, 7, 13, .94); }
#mobile-nav { background: rgba(5, 7, 13, .94); padding-bottom: env(safe-area-inset-bottom); }
html.nav-open { overflow: hidden; }
.nav-link-mobile { min-height: 3.25rem; }
.nav-link-mobile:active { background: color-mix(in srgb, var(--c-accent) 14%, transparent); }
#mobile-nav .btn { min-height: 3.25rem; }
@media (max-width: 767px) {
    .container-x { padding-left: 1rem; padding-right: 1rem; }
    /* the pinned scroll arrow lands on the hero buttons on a phone; the page scrolls anyway */
    .scroll-cue { display: none !important; }
    .copy-ip { height: 2.5rem; padding: 0 .85rem 0 .75rem; font-size: .75rem; }
    .rules-back { justify-self: start; }
    .rules-crumbs { font-size: .68rem; gap: .2rem; margin-bottom: 1.25rem; }
    .rbtn.is-big { padding: 1.5rem 1.25rem; }
    .rbtn.is-big b { font-size: 1.15rem; }
    .rule { padding: 1rem 1.1rem; }
    .gm-body .prose ul > li { padding: 1rem 1.1rem; }
    .gm-body .prose ul > li:has(> .lvl) > strong { padding-right: 4.75rem; }
    .gm-body .prose table { font-size: .85rem; }
    .gm-body .prose th, .gm-body .prose td { padding: .5rem .5rem; }
    .gm-body .prose .gm-tabbar button { padding: .6rem 1.1rem; font-size: .78rem; }
    .gm-lead { font-size: 1rem; }
    .footer-row > .glass { width: 100%; max-width: none; }
    .footer-brand { width: min(100%, 220px); }
    .auth-card { padding: 1.75rem 1.25rem 1.5rem; border-radius: 1.5rem; }
    .manage-head { margin-bottom: 1.25rem; }
}
/* Touch devices: no hover lifts, so nothing sticks in a raised state after a tap */
@media (hover: none) {
    .nav-store:hover, .copy-ip:hover, .card-explore:hover, .rbtn:hover, .rules-back:hover,
    .gm-body .prose ul > li:hover, .footer-brand:hover img { transform: none; }
}

/* Staff application page (page-apply.hbs) */
.apply-grid { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 1024px) { .apply-grid { grid-template-columns: minmax(0, .42fr) minmax(0, 1fr); } }
.apply-side { display: flex; flex-direction: column; gap: 1.5rem; }
.apply-list { display: flex; flex-direction: column; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.apply-list li { position: relative; padding-left: 1.4rem; font-size: .875rem; color: var(--c-muted); line-height: 1.5; }
.apply-list li::before { content: ""; position: absolute; left: 0; top: .5rem; width: .55rem; height: .55rem; border-radius: 9999px; background: var(--c-accent-2); box-shadow: 0 0 10px var(--c-accent-2); }
.apply-list li b { color: var(--c-text); font-weight: 700; }
.apply-section + .apply-section { margin-top: 2.5rem; padding-top: 2.5rem; border-top: 1px solid var(--c-border); }
.apply-fields { display: grid; gap: 1.1rem; margin-top: 1.5rem; }
@media (min-width: 640px) { .apply-fields { grid-template-columns: 1fr 1fr; } .apply-fields .is-wide { grid-column: 1 / -1; } }
.apply-fields .auth-field { margin: 0; padding: 0; border: 0; min-width: 0; }
.apply-fields .auth-field > span { line-height: 1.35; text-transform: none; letter-spacing: 0; font-size: .84rem; color: var(--c-text); }
.apply-fields .auth-field > span small { display: block; color: var(--c-dim); font-weight: 500; margin-top: .15rem; font-size: .74rem; }
.apply-fields textarea { min-height: 6rem; line-height: 1.5; }
.apply-req { color: #fca5a5; font-style: normal; }
.apply-field-error input, .apply-field-error textarea { border-color: #f87171; box-shadow: 0 0 0 3px color-mix(in srgb, #f87171 20%, transparent); }
.apply-field-error > span { color: #fca5a5; }
.apply-choice { display: flex; flex-wrap: wrap; gap: .5rem; }
.apply-choice.is-stack { flex-direction: column; align-items: flex-start; }
.apply-radio { position: relative; display: inline-flex; max-width: 100%; }
.apply-radio input { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.apply-radio span { display: inline-flex; align-items: center; padding: .55rem .95rem; border-radius: 9999px; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); font-size: .82rem; font-weight: 600; color: var(--c-muted); cursor: pointer; line-height: 1.3; transition: border-color .2s, color .2s, background-color .2s, box-shadow .2s; }
.apply-radio:hover span { border-color: var(--c-border-strong); color: var(--c-text); }
.apply-radio input:checked + span { color: var(--c-bg-0); background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2)); border-color: transparent; box-shadow: 0 8px 20px -10px var(--c-accent); }
.apply-radio input:focus-visible + span { box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-accent) 35%, transparent); }
.apply-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.apply-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--c-border); }
.apply-submit { height: 3.25rem; padding: 0 2.25rem; font-size: .95rem; }
.apply-submit:disabled { opacity: .6; cursor: wait; }
.apply-done { text-align: center; padding: 2rem 1rem; max-width: 34rem; margin: 0 auto; }
.apply-done svg { display: block; width: 4rem; height: 4rem; margin: 0 auto 1rem; fill: #34d399; filter: drop-shadow(0 0 18px #34d399); }
/* Top-right staff shortcuts in the nav (Panel / Mail), same tab */
.nav-util { display: none; position: absolute; right: 0; top: 50%; transform: translateY(-50%); align-items: center; gap: .4rem; }
@media (min-width: 1024px) { .nav-util { display: flex; } }
/* the signed-in cluster never squeezes: pills, skin and the three-lines icon keep their size, the side column grows instead */
.nav-util > *, .nav-profile-btn > *, .nav-status > * { flex-shrink: 0; }
.nav-util-link { display: inline-flex; align-items: center; gap: .4rem; height: 2.5rem; padding: 0 .95rem; border-radius: 9999px; border: 1px solid var(--c-border); background: var(--c-surface); backdrop-filter: blur(18px) saturate(150%); color: var(--c-muted); font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; transition: color .2s, border-color .2s, box-shadow .2s, transform .25s var(--ease-out); }
.nav-util-link svg { width: 15px; height: 15px; fill: currentColor; }
.nav-util-link:hover { color: #fff; border-color: var(--c-border-strong); box-shadow: var(--glow); transform: translateY(-2px); }
@media (min-width: 1024px) and (max-width: 1279px) { .nav-util-link span { display: none; } .nav-util-link { padding: 0 .7rem; } }
/* Staff session: login pill, profile bubble + menu */
.nav-util-link.is-login { color: var(--c-bg-0); background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2)); border-color: transparent; box-shadow: 0 8px 24px -8px color-mix(in srgb, var(--c-accent) 70%, transparent); }
.nav-util-link.is-login:hover { color: var(--c-bg-0); filter: brightness(1.08); }
.nav-profile { position: relative; }
.nav-profile-btn { display: inline-flex; align-items: center; gap: .5rem; height: 2.5rem; padding: 0 .75rem 0 .35rem; border-radius: 9999px; border: 1px solid var(--c-border); background: var(--c-surface); backdrop-filter: blur(18px) saturate(150%); color: var(--c-text); font: inherit; font-size: .8rem; font-weight: 700; cursor: pointer; transition: border-color .2s, box-shadow .2s; }
.nav-profile-btn:hover, .nav-profile-btn[aria-expanded="true"] { border-color: var(--c-border-strong); box-shadow: var(--glow); }
.nav-profile-btn img { width: 26px; height: 26px; border-radius: .5rem; image-rendering: pixelated; }
.nav-profile-btn .chev { width: 14px; height: 14px; fill: var(--c-muted); transition: transform .2s; }
.nav-profile-btn .chev.is-open { transform: rotate(180deg); }
.nav-profile-menu { position: absolute; right: 0; top: calc(100% + .6rem); min-width: 16rem; padding: .5rem; border-radius: 1.25rem; box-shadow: 0 30px 80px -30px rgba(0,0,0,.85); z-index: 60; }
.nav-profile-head { display: flex; align-items: center; gap: .75rem; padding: .6rem .75rem .8rem; border-bottom: 1px solid var(--c-border); margin-bottom: .4rem; }
.nav-profile-head img { width: 40px; height: 40px; border-radius: .7rem; image-rendering: pixelated; }
.nav-profile-head b { display: block; color: #fff; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .9rem; }
.nav-profile-head small { display: block; color: var(--c-muted); font-size: .72rem; margin-top: .1rem; }
.nav-profile-menu a, .nav-profile-menu button { display: flex; width: 100%; align-items: center; gap: .6rem; padding: .6rem .75rem; border: 0; border-radius: .8rem; background: transparent; color: var(--c-text); font: inherit; font-size: .84rem; font-weight: 600; text-align: left; cursor: pointer; transition: background-color .15s, color .15s; }
.nav-profile-menu a:hover, .nav-profile-menu button:hover { background: color-mix(in srgb, var(--c-accent) 14%, transparent); color: #fff; }
.nav-profile-menu svg { width: 16px; height: 16px; fill: var(--c-muted); flex: none; }
.nav-profile-menu .is-danger { color: #fca5a5; }
.nav-profile-menu .is-danger:hover { background: rgba(248,113,113,.14); color: #fecaca; }
.nav-profile-menu .is-danger svg { fill: currentColor; }
.mobile-staff { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--c-border); display: flex; flex-direction: column; gap: .25rem; }
.mobile-staff > div { display: flex; flex-direction: column; gap: .25rem; }
.mobile-staff-head { display: flex; align-items: center; gap: .7rem; padding: .5rem .75rem .8rem; }
.mobile-staff-head img { width: 32px; height: 32px; border-radius: .6rem; image-rendering: pixelated; }
.mobile-staff-head b { display: block; color: #fff; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .9rem; }
.mobile-staff-head small { display: block; color: var(--c-muted); font-size: .72rem; }
.mobile-staff button.nav-link-mobile { width: 100%; border: 0; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.mobile-staff .is-danger { color: #fca5a5; }
.auth-form .btn-ghost.auth-submit { color: var(--c-text); }
.auth-danger { color: #fca5a5 !important; }
/* Username + fixed @domain suffix (login, staff admin) */
.auth-suffix { display: flex; align-items: stretch; border-radius: .9rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.auth-suffix.is-focus, .auth-suffix:focus-within { border-color: var(--c-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-accent) 25%, transparent); }
.auth-suffix input { flex: 1; min-width: 0; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
.auth-suffix-tag { display: flex; align-items: center; padding: 0 .9rem 0 .2rem; color: var(--c-accent-2); font-weight: 700; font-size: .9rem; white-space: nowrap; user-select: none; }

/* Staff admin page */
.sadm-grid { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 1024px) { .sadm-grid { grid-template-columns: minmax(0, 1fr) minmax(0, .5fr); } }
.sadm-gate { max-width: 34rem; margin: 0 auto; }
.sadm-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.sadm-table { border: 1px solid var(--c-border); border-radius: 1.25rem; overflow: hidden; }
.sadm-row { display: grid; grid-template-columns: minmax(0, 1.6fr) .7fr .8fr .5fr minmax(0, 1.2fr); gap: .75rem; align-items: center; padding: .8rem 1rem; border-top: 1px solid var(--c-border); font-size: .875rem; }
.sadm-row:first-child { border-top: 0; }
.sadm-row.is-head { font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-dim); background: color-mix(in srgb, var(--c-bg-0) 40%, transparent); }
.sadm-row.is-me { background: color-mix(in srgb, var(--c-accent) 6%, transparent); }
.sadm-who { display: flex; align-items: center; gap: .7rem; min-width: 0; }
.sadm-who img { width: 32px; height: 32px; border-radius: .6rem; image-rendering: pixelated; flex: none; }
.sadm-who b { display: block; color: #fff; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .85rem; }
.sadm-who small { display: block; color: var(--c-muted); font-size: .72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sadm-pill { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .8rem; border-radius: 9999px; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 60%, transparent); color: var(--c-muted); font: inherit; font-size: .75rem; font-weight: 700; cursor: pointer; transition: border-color .2s, color .2s, background-color .2s; }
.sadm-pill::before { content: ""; width: .5rem; height: .5rem; border-radius: 9999px; background: var(--c-dim); }
.sadm-pill.is-on { color: #fff; border-color: color-mix(in srgb, var(--c-accent) 50%, transparent); background: color-mix(in srgb, var(--c-accent) 16%, transparent); }
.sadm-pill.is-on::before { background: #34d399; box-shadow: 0 0 10px #34d399; }
.sadm-pill:hover { border-color: var(--c-border-strong); color: #fff; }
.sadm-pill:disabled { opacity: .5; cursor: wait; }
.sadm-2fa { font-size: .75rem; font-weight: 700; color: var(--c-dim); }
.sadm-2fa.is-on { color: #34d399; }
.sadm-2fa.is-off { color: #fbbf24; }
.sadm-actions { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-end; }
.sadm-mini { padding: .35rem .7rem; border-radius: 9999px; border: 1px solid var(--c-border); background: transparent; color: var(--c-muted); font: inherit; font-size: .72rem; font-weight: 700; cursor: pointer; transition: border-color .2s, color .2s, background-color .2s; }
.sadm-mini:hover { color: #fff; border-color: var(--c-border-strong); }
.sadm-mini.is-danger { color: #fca5a5; }
.sadm-mini.is-danger:hover { background: rgba(248,113,113,.14); color: #fecaca; }
.sadm-mini:disabled { opacity: .45; cursor: not-allowed; }
.sadm-check { display: flex; gap: .75rem; align-items: flex-start; padding: .8rem 1rem; border-radius: .9rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 50%, transparent); cursor: pointer; }
.sadm-check input { margin-top: .2rem; width: 1rem; height: 1rem; accent-color: var(--c-accent); }
.sadm-check b { display: block; color: #fff; font-size: .85rem; }
.sadm-check small { display: block; color: var(--c-muted); font-size: .74rem; margin-top: .1rem; }
.sadm-secret { display: grid; gap: .6rem; }
.sadm-secret > div { display: flex; flex-direction: column; gap: .25rem; padding: .7rem .9rem; border-radius: .9rem; background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); border: 1px solid var(--c-border); }
.sadm-secret small { font-size: .65rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-dim); }
.sadm-secret code { font-family: "JetBrains Mono", ui-monospace, monospace; font-size: .95rem; color: #fff; word-break: break-all; }
@media (max-width: 767px) { .sadm-row { grid-template-columns: 1fr 1fr; } .sadm-row.is-head { display: none; } .sadm-who { grid-column: 1 / -1; } .sadm-actions { grid-column: 1 / -1; justify-content: flex-start; } }
/* Suffix pill matches the nav bubbles; profile bubble = skin only; rank + perms chips in the menu */
.auth-suffix { border: 0; background: transparent; overflow: visible; gap: .5rem; align-items: center; }
.auth-suffix.is-focus, .auth-suffix:focus-within { box-shadow: none; }
.auth-suffix input { border: 1px solid var(--c-border) !important; border-radius: .9rem !important; background: color-mix(in srgb, var(--c-bg-0) 70%, transparent) !important; }
.auth-suffix:focus-within input { border-color: var(--c-accent) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-accent) 25%, transparent) !important; }
.auth-suffix-tag { height: 2.9rem; padding: 0 .95rem; border-radius: 9999px; border: 1px solid var(--c-border); background: var(--c-surface); backdrop-filter: blur(18px) saturate(150%); color: var(--c-muted); font-size: .8rem; font-weight: 700; letter-spacing: .02em; }
.nav-profile-btn { padding: 0 .55rem 0 .3rem; gap: .35rem; }
.nav-profile-btn img { width: 28px; height: 28px; border-radius: .55rem; }
.nav-rank { display: inline-block; margin-top: .15rem; padding: .1rem .55rem; border-radius: 9999px; background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2)); color: var(--c-bg-0); font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.nav-profile-head img { width: 44px; height: 44px; }
.nav-profile-perms { display: flex; flex-wrap: wrap; gap: .3rem; padding: 0 .75rem .6rem; }
.nav-profile-perms .chip { font-size: .66rem; padding: .15rem .55rem; }
/* Staff admin v2: account cards + editor */
.sadm-cards { display: grid; gap: .6rem; }
.sadm-card { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: .9rem; align-items: center; width: 100%; padding: .8rem 1rem; border-radius: 1.1rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 45%, transparent); color: var(--c-text); font: inherit; text-align: left; cursor: pointer; transition: border-color .2s, box-shadow .2s, transform .25s var(--ease-out), background-color .2s; }
.sadm-card:hover { border-color: var(--c-border-strong); box-shadow: var(--glow); transform: translateY(-2px); }
.sadm-card.is-open { border-color: var(--c-accent); background: color-mix(in srgb, var(--c-accent) 10%, transparent); }
.sadm-card.is-me { background: color-mix(in srgb, var(--c-accent) 6%, transparent); }
.sadm-card img { width: 44px; height: 44px; border-radius: .7rem; image-rendering: pixelated; }
.sadm-card-main { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.sadm-card-main b { color: #fff; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .9rem; }
.sadm-card-main .nav-rank { align-self: flex-start; }
.sadm-card-main small { color: var(--c-muted); font-size: .72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sadm-card-perms { display: flex; flex-wrap: wrap; gap: .3rem; justify-content: flex-end; max-width: 16rem; }
.sadm-card-perms .chip { font-size: .66rem; padding: .15rem .55rem; }
.chip.is-role { background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2)); color: var(--c-bg-0); border-color: transparent; }
.chip.is-warn { border-color: rgba(251,191,36,.45); color: #fcd34d; background: rgba(251,191,36,.1); }
.chip.is-2fa.is-on { color: #34d399; border-color: rgba(52,211,153,.4); }
.chip.is-2fa.is-off { color: #fbbf24; border-color: rgba(251,191,36,.35); }
.sadm-two { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 480px) { .sadm-two { grid-template-columns: 1fr; } }
.sadm-hint { display: block; color: var(--c-dim); font-weight: 500; text-transform: none; letter-spacing: 0; margin-top: .15rem; font-size: .72rem; }
.sadm-label { display: block; margin-top: .25rem; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.sadm-mc { display: flex; align-items: center; gap: .6rem; }
.sadm-mc img { width: 36px; height: 36px; border-radius: .6rem; image-rendering: pixelated; flex: none; }
.sadm-mc input { flex: 1; min-width: 0; }
.sadm-check.is-locked { opacity: .7; cursor: default; }
.sadm-servers { display: grid; gap: .5rem; margin-top: .5rem; }
.sadm-server { padding: .7rem .85rem; border-radius: .9rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 50%, transparent); }
.sadm-server.is-on { border-color: color-mix(in srgb, var(--c-accent) 45%, transparent); }
.sadm-server b { display: block; color: #fff; font-size: .82rem; margin-bottom: .45rem; }
.sadm-caps { display: flex; flex-wrap: wrap; gap: .35rem; }
.sadm-cap { position: relative; }
.sadm-cap input { position: absolute; inset: 0; opacity: 0; }
.sadm-cap span { display: inline-flex; padding: .3rem .65rem; border-radius: 9999px; border: 1px solid var(--c-border); font-size: .72rem; font-weight: 700; color: var(--c-muted); cursor: pointer; transition: color .2s, background-color .2s, border-color .2s; }
.sadm-cap.is-on span { color: var(--c-bg-0); background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2)); border-color: transparent; }
/* Status page */
.st-banner { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.4rem; border-radius: 1.5rem; border: 1px solid var(--c-border); --st: #34d399; }
.st-banner.is-partial, .st-banner.is-maintenance { --st: #fbbf24; }
.st-banner.is-down { --st: #f87171; }
.st-banner.is-unknown { --st: var(--c-dim); }
.st-dot { display: inline-block; width: .8rem; height: .8rem; border-radius: 9999px; background: var(--st, #34d399); box-shadow: 0 0 14px var(--st, #34d399); flex: none; }
.st-banner .st-dot { width: 1rem; height: 1rem; animation: st-pulse 2.4s ease-in-out infinite; }
@keyframes st-pulse { 50% { box-shadow: 0 0 26px var(--st); } }
.st-banner-text { flex: 1; min-width: 0; }
.st-banner-text b { display: block; color: #fff; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: 1.1rem; }
.st-banner-text small { display: block; color: var(--c-muted); font-size: .82rem; margin-top: .15rem; }
.st-banner-meta { display: flex; flex-direction: column; align-items: flex-end; gap: .2rem; font-size: .8rem; color: var(--c-muted); white-space: nowrap; }
.st-banner-meta b { color: #fff; font-family: "JetBrains Mono", ui-monospace, monospace; }
.st-admin-row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .6rem; }
.st-state { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .9rem; border-radius: 9999px; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 60%, transparent); color: var(--c-muted); font: inherit; font-size: .78rem; font-weight: 700; cursor: pointer; --st: #34d399; }
.st-state.is-degraded, .st-state.is-maintenance { --st: #fbbf24; }
.st-state.is-offline { --st: #f87171; }
.st-state .st-dot { width: .55rem; height: .55rem; }
.st-state.is-on { color: #fff; border-color: var(--st); background: color-mix(in srgb, var(--st) 14%, transparent); }
.st-msg { flex: 1; min-width: 12rem; padding: .6rem .9rem; border-radius: .9rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); color: var(--c-text); font: inherit; font-size: .85rem; }
.st-grid { display: grid; gap: 1.25rem; }
@media (min-width: 900px) { .st-grid { grid-template-columns: 1fr 1fr; } .st-card.is-wide { grid-column: 1 / -1; } }
.st-card { --st: #34d399; border: 1px solid var(--c-border); }
.st-card.is-partial { --st: #fbbf24; }
.st-card.is-down { --st: #f87171; }
.st-card.is-unknown { --st: var(--c-dim); }
.st-card-head { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.st-name { display: flex; align-items: center; gap: .6rem; color: #fff; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: 1.05rem; font-weight: 700; }
.st-live { text-align: right; }
.st-live b { display: block; color: var(--st); font-size: .85rem; }
.st-live small { display: block; color: var(--c-dim); font-size: .72rem; }
.st-strip { display: grid; grid-template-columns: repeat(90, 1fr); gap: 2px; margin-top: 1.25rem; height: 2rem; }
.st-day { border-radius: 2px; background: color-mix(in srgb, var(--c-dim) 35%, transparent); transition: transform .15s; }
.st-day:hover { transform: scaleY(1.25); }
.st-day.is-green { background: #34d399; box-shadow: 0 0 6px rgba(52,211,153,.45); }
.st-day.is-orange { background: #fbbf24; box-shadow: 0 0 6px rgba(251,191,36,.45); }
.st-day.is-red { background: #f87171; box-shadow: 0 0 6px rgba(248,113,113,.45); }
.st-strip-legend { display: flex; justify-content: space-between; margin-top: .4rem; font-size: .68rem; color: var(--c-dim); }
.st-uptimes { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-top: 1rem; }
.st-uptimes > div { padding: .6rem .5rem; border-radius: .8rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 50%, transparent); text-align: center; }
.st-uptimes small { display: block; color: var(--c-dim); font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.st-uptimes b { display: block; color: #fff; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: .95rem; margin-top: .15rem; }
.st-sub { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-top: .9rem; font-size: .78rem; color: var(--c-muted); }
.st-sub span { display: inline-flex; align-items: center; gap: .4rem; --st: #34d399; }
.st-sub .is-down { --st: #f87171; }
.st-sub .st-dot { width: .5rem; height: .5rem; }
/* Status: its own blue button on the left, mirror of Login on the right */
.nav-status { display: none; position: absolute; left: 0; top: 50%; transform: translateY(-50%); align-items: center; gap: .45rem; height: 2.5rem; padding: 0 1rem; border-radius: 9999px; color: var(--c-bg-0); background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2)); font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; box-shadow: 0 8px 24px -8px color-mix(in srgb, var(--c-accent) 70%, transparent), inset 0 1px 0 hsla(0,0%,100%,.35); transition: transform .25s var(--ease-out), filter .25s, box-shadow .25s; }
.nav-status svg { width: 15px; height: 15px; fill: currentColor; }
.nav-status:hover, .nav-status.is-here { transform: translateY(calc(-50% - 2px)); filter: brightness(1.08); box-shadow: 0 16px 40px -10px color-mix(in srgb, var(--c-accent) 95%, transparent), inset 0 1px 0 hsla(0,0%,100%,.4); }
@media (min-width: 1024px) { .nav-status { display: inline-flex; } }
.st-section-head { padding-top: 1.5rem; border-top: 1px solid var(--c-border); }
/* Copy IP sits at the far right after the login area */
.nav-util .copy-ip { margin-left: .35rem; }

/* Signed-in right group must not collide with the centred nav row: icon-only below 1536px */
@media (max-width: 1535px) { .nav-util-link:not(.is-login) span { display: none; } .nav-util-link:not(.is-login) { padding: 0 .75rem; } .nav-util .copy-ip span:last-child { display: none; } .nav-util .copy-ip { padding-right: .875rem; } }

/* Desktop bar = three columns: Status | centred nav row | Login/Panel/Mail/profile + Copy IP. Equal gaps either side of the row. */
@media (min-width: 1024px) {
    /* equal side columns: the centred row stays put however wide the signed-in cluster (Panel / Mail / profile / Copy IP) gets */
    /* both side columns are as wide as the wider one (--nav-side, measured by a tiny script), so the row is centred AND nothing can overlap it */
    .site-nav > .container-x { display: grid !important; grid-template-columns: minmax(var(--nav-side, max-content), 1fr) auto minmax(var(--nav-side, max-content), 1fr); column-gap: 1rem; }
    .site-nav > .container-x > nav { justify-self: center; }
    .site-nav > .container-x > .nav-status { justify-self: start; }
    .site-nav > .container-x > .nav-util { justify-self: end; flex-wrap: nowrap; }
    .nav-status, .nav-util { position: static; transform: none; }
    .nav-status:hover, .nav-status.is-here { transform: translateY(-2px); }
}

/* Account security page (/security/): 2FA enrolment */
.sec-grid { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 1024px) { .sec-grid { grid-template-columns: minmax(0, 1fr) minmax(0, .45fr); } }
.sec-who { display: flex; align-items: center; gap: .9rem; flex-wrap: wrap; }
.sec-who img { width: 52px; height: 52px; border-radius: .8rem; image-rendering: pixelated; }
.sec-who b { display: block; color: #fff; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: 1rem; }
.sec-who small { display: block; color: var(--c-muted); font-size: .74rem; margin-top: .1rem; }
.sec-who .chip { margin-left: auto; }
.sec-scan { display: grid; gap: 1.25rem; align-items: start; }
@media (min-width: 640px) { .sec-scan { grid-template-columns: auto minmax(0, 1fr); } }
.sec-qr { display: grid; place-items: center; width: 228px; height: 228px; padding: 14px; border-radius: 1.25rem; background: #fff; box-shadow: 0 0 0 1px var(--c-border), 0 20px 60px -20px rgba(0,0,0,.8), var(--glow); }
.sec-qr img, .sec-qr canvas { display: block; width: 196px; height: 196px; image-rendering: pixelated; }
.sec-code { font-family: "JetBrains Mono", ui-monospace, monospace !important; font-size: 1.35rem !important; letter-spacing: .25em; text-align: center; }
.sec-recovery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
@media (min-width: 640px) { .sec-recovery { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.sec-recovery code { display: block; padding: .6rem .5rem; text-align: center; border-radius: .8rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); color: #fff; font-family: "JetBrains Mono", ui-monospace, monospace; font-size: .85rem; letter-spacing: .06em; }
/* "Set up 2FA" nav pill: amber so it reads as a to-do */
.nav-util-link.is-2fa { background: linear-gradient(120deg, #f59e0b, #fcd34d); box-shadow: 0 8px 24px -8px rgba(245, 158, 11, .7); }
@media (max-width: 1535px) { .nav-util-link.is-2fa span { display: inline; } }
/* Profile menu: locked-state note; realm cards: edit + add */
.nav-profile-note { margin: .25rem .75rem .5rem; font-size: .74rem; color: var(--c-muted); }
.card-explore.is-edit { border-color: color-mix(in srgb, var(--c-accent) 55%, transparent); background: color-mix(in srgb, var(--c-accent) 14%, var(--c-bg-0)); color: var(--c-accent-2); }
.card-explore.is-edit:hover { background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2)); color: var(--c-bg-0); }
.card-add { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; min-height: 16rem; border-style: dashed !important; color: var(--c-muted); text-align: center; transition: border-color .25s, transform .25s var(--ease-out), box-shadow .25s; }
.card-add:hover { border-color: var(--c-border-strong) !important; transform: translateY(-2px); box-shadow: var(--glow); color: #fff; }
.card-add-plus { font-size: 2.5rem; line-height: 1; color: var(--c-accent-2); }
.card-add b { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; }
.card-add small { font-size: .75rem; }
.card-chip-soon { color: #fca5a5; border-color: color-mix(in srgb, #f87171 50%, transparent); background: color-mix(in srgb, #f87171 16%, var(--c-bg-0)); }
.rules-edit { margin-left: .5rem; padding: .4rem .8rem; border-radius: 9999px; border: 1px solid var(--c-border-strong); color: var(--c-accent-2); font-size: .68rem; letter-spacing: .1em; }
.rules-edit:hover { color: #fff; box-shadow: var(--glow); }

/* Website editor */
.ed-layout { display: grid; gap: 1.5rem; align-items: start; }
@media (min-width: 1024px) { .ed-layout { grid-template-columns: 17rem minmax(0, 1fr); } .ed-side { position: sticky; top: calc(var(--nav-h) + var(--ann-h, 0px) + 1.5rem); } }
.ed-side { display: flex; flex-direction: column; gap: .35rem; }
.ed-tab { display: flex; flex-direction: column; gap: .1rem; width: 100%; padding: .75rem .9rem; border-radius: 1rem; border: 1px solid transparent; background: transparent; color: var(--c-muted); font: inherit; text-align: left; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
.ed-tab b { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .85rem; color: var(--c-text); }
.ed-tab small { font-size: .72rem; }
.ed-tab:hover { background: color-mix(in srgb, var(--c-accent) 8%, transparent); }
.ed-tab.is-active { background: color-mix(in srgb, var(--c-accent) 16%, transparent); border-color: var(--c-border-strong); }
.ed-savebar { margin-top: .75rem; padding: .9rem; border-top: 1px solid var(--c-border); display: flex; flex-direction: column; gap: .5rem; }
.text-amber { color: #fbbf24; }
.ed-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.ed-list { display: grid; gap: 1rem; }
.ed-item { display: flex; flex-direction: column; gap: 1rem; border: 1px solid var(--c-border); transition: box-shadow .3s, border-color .3s; }
.ed-item.is-focus { border-color: var(--c-accent); box-shadow: var(--glow); }
.ed-item-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ed-item-title { display: flex; align-items: center; gap: .7rem; min-width: 0; }
.ed-item-title img { width: 56px; height: 36px; object-fit: cover; border-radius: .6rem; }
.ed-item-title b { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; color: #fff; font-size: .95rem; }
.ed-tools { display: flex; gap: .3rem; flex: none; }
.ed-add { display: block; width: 100%; padding: 1rem; border-radius: 1.25rem; border: 1px dashed var(--c-border-strong); background: color-mix(in srgb, var(--c-accent) 5%, transparent); color: var(--c-accent-2); font: inherit; font-weight: 700; cursor: pointer; transition: background-color .2s, color .2s; }
.ed-add:hover { background: color-mix(in srgb, var(--c-accent) 14%, transparent); color: #fff; }
.ed-add.is-small { padding: .6rem; font-size: .8rem; border-radius: .9rem; margin-top: .5rem; }
.ed-tree { display: flex; flex-direction: column; gap: .5rem; }
.ed-node { border: 1px solid var(--c-border); border-radius: 1rem; background: color-mix(in srgb, var(--c-bg-0) 35%, transparent); }
.ed-node.is-cat { margin: .5rem 0; background: color-mix(in srgb, var(--c-bg-0) 25%, transparent); }
.ed-node.is-sec { margin: .4rem 0; }
.ed-node-row { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .35rem .5rem .35rem .25rem; }
.ed-node-btn { display: flex; align-items: center; gap: .6rem; flex: 1; min-width: 0; padding: .45rem .6rem; border: 0; border-radius: .8rem; background: transparent; color: var(--c-text); font: inherit; text-align: left; cursor: pointer; }
.ed-node-btn:hover { background: color-mix(in srgb, var(--c-accent) 8%, transparent); }
.ed-node-btn .dot { width: .6rem; height: .6rem; border-radius: 9999px; flex: none; box-shadow: 0 0 8px currentColor; }
.ed-node-btn b { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .85rem; color: #fff; }
.ed-node-btn small { color: var(--c-dim); font-size: .72rem; }
.ed-node-row.is-open .ed-node-btn { background: color-mix(in srgb, var(--c-accent) 12%, transparent); }
.ed-node-body { padding: .75rem .9rem 1rem; border-top: 1px solid var(--c-border); }
.ed-rules { display: flex; flex-direction: column; gap: .6rem; margin-top: .5rem; }
.ed-rule { position: relative; display: grid; gap: .4rem; padding: .8rem .9rem 3rem; border-radius: .9rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 50%, transparent); }
.ed-rule input, .ed-rule textarea, .ed-row input, .ed-row select, .ed-field input, .ed-field select, .ed-field textarea, .ed-code { width: 100%; padding: .6rem .8rem; border-radius: .75rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); color: var(--c-text); font: inherit; font-size: .875rem; outline: 0; }
.ed-rule input:first-of-type { font-weight: 700; color: #fff; }
.ed-rule textarea, .ed-field textarea { resize: vertical; }
.ed-rule-tools { position: absolute; right: .75rem; bottom: .7rem; }
.ed-code { font-family: "JetBrains Mono", ui-monospace, monospace !important; font-size: .78rem !important; }
.ed-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) auto; gap: .5rem; align-items: center; margin-top: .5rem; }
.ed-row.is-3 { grid-template-columns: 8rem 6rem minmax(0, 1fr) auto; }
@media (max-width: 640px) { .ed-row, .ed-row.is-3 { grid-template-columns: 1fr; } }
.ed-field { display: grid; gap: .5rem; padding: .8rem .9rem; margin-top: .6rem; border-radius: .9rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 45%, transparent); }
.ed-field-top { display: grid; grid-template-columns: minmax(0, 1fr) 9rem auto auto auto; gap: .5rem; align-items: center; }
.ed-field-more { display: grid; gap: .4rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ed-field-more textarea, .ed-field-more .ed-key { grid-column: 1 / -1; }
.ed-key { font-family: "JetBrains Mono", ui-monospace, monospace !important; font-size: .75rem !important; color: var(--c-muted) !important; }
.ed-check { display: inline-flex; align-items: center; gap: .35rem; font-size: .75rem; color: var(--c-muted); white-space: nowrap; }
.ed-check input { accent-color: var(--c-accent); }
@media (max-width: 900px) { .ed-field-top { grid-template-columns: 1fr 1fr; } .ed-field-more { grid-template-columns: 1fr; } }
input[type="color"] { padding: .2rem; height: 2.9rem; width: 100%; border-radius: .9rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); }
.auth-field select { width: 100%; padding: .8rem 1rem; border-radius: .9rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); color: var(--c-text); font: inherit; font-size: .95rem; }
/* Staff admin v3: overview, toolbar, groups, sections */
.sadm-stats { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
.sadm-stat { display: flex; flex-direction: column; gap: .15rem; padding: 1rem 1.25rem; border-radius: 1.25rem; }
.sadm-stat small { font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--c-dim); }
.sadm-stat b { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: 1.5rem; color: #fff; }
.sadm-stat span { font-size: .74rem; color: var(--c-muted); }
.sadm-stat.is-warn b { color: #fcd34d; }
.sadm-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1.25rem; }
.sadm-search { flex: 1; min-width: 12rem; padding: .7rem 1rem; border-radius: 9999px; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); color: var(--c-text); font: inherit; font-size: .875rem; outline: 0; }
.sadm-search:focus { border-color: var(--c-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-accent) 25%, transparent); }
.sadm-filters { display: flex; flex-wrap: wrap; gap: .35rem; }
.sadm-filters .tab-btn { font-size: .72rem; padding: .45rem .85rem; }
.sadm-group { margin-top: 1.5rem; }
.sadm-group-title { display: flex; align-items: center; gap: .6rem; margin-bottom: .75rem; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--c-accent-2); }
.sadm-group-title small { display: inline-grid; place-items: center; min-width: 1.5rem; height: 1.5rem; padding: 0 .4rem; border-radius: 9999px; background: color-mix(in srgb, var(--c-accent) 14%, transparent); color: var(--c-text); font-size: .66rem; }
.sadm-card.is-locked { border-style: dashed; }
.sadm-section { display: flex; flex-direction: column; gap: .6rem; padding: 1rem; border-radius: 1.1rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 30%, transparent); }
.sadm-check.is-admin { border-color: color-mix(in srgb, var(--c-accent) 55%, transparent); background: color-mix(in srgb, var(--c-accent) 10%, transparent); }
.sadm-ingame { font-size: .78rem; color: var(--c-muted); }
.sadm-ingame b { color: var(--c-accent-2); }
.sadm-actions-grid { display: grid; gap: .5rem; grid-template-columns: 1fr 1fr; }
.sadm-ladder { display: flex; flex-direction: column; gap: .5rem; }
.sadm-ladder li { display: flex; align-items: flex-start; gap: .6rem; font-size: .78rem; }
.sadm-ladder li small { color: var(--c-muted); padding-top: .15rem; }
.sadm-ladder .nav-rank { flex: none; min-width: 6rem; text-align: center; }
.sadm-mini.is-on { border-color: color-mix(in srgb, #34d399 50%, transparent); color: #34d399; }
.contents { display: contents; }

/* Store editor */
.st-adm-tabs { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1rem; }
.st-adm-summary { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); }
.st-adm-summary small { display: block; font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--c-dim); }
.st-adm-summary b { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; color: #fff; font-size: 1.1rem; }
.st-adm-search { margin-bottom: 1rem; }
.st-adm-search input { width: 100%; max-width: 28rem; padding: .7rem 1rem; border-radius: 9999px; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); color: var(--c-text); font: inherit; font-size: .875rem; outline: 0; }
.st-adm-note { font-size: .875rem; color: var(--c-muted); border-color: color-mix(in srgb, var(--c-accent) 40%, transparent); }
.st-adm-note b { color: #fff; }
.st-cat-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.st-pkgs { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); }
.st-pkg { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: .75rem; align-items: center; padding: .85rem .95rem 1.9rem; border-radius: 1.1rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 45%, transparent); transition: border-color .2s, box-shadow .2s; }
.st-pkg:hover { border-color: var(--c-border-strong); }
.st-pkg.is-off { opacity: .6; border-style: dashed; }
.st-pkg.is-edit { border-color: var(--c-accent); box-shadow: var(--glow); }
.st-pkg img { width: 64px; height: 64px; object-fit: cover; border-radius: .8rem; }
.st-pkg-main b { display: block; color: #fff; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .85rem; }
.st-pkg-main small { color: var(--c-muted); font-size: .74rem; }
.st-pkg-form { display: grid; gap: .4rem; grid-template-columns: minmax(0, 1fr) 6rem; }
.st-pkg-form input { padding: .5rem .7rem; border-radius: .7rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); color: var(--c-text); font: inherit; font-size: .85rem; outline: 0; }
.st-pkg-tools { grid-column: 1 / -1; display: flex; justify-content: flex-end; }
.st-pkg-state { position: absolute; left: .95rem; bottom: .65rem; font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--c-dim); }
.st-pkg:not(.is-off) .st-pkg-state { color: #34d399; }
/* No sideways jump between pages with and without a scrollbar: the gutter is always reserved */
html { scrollbar-gutter: stable; }
/* Inner-page heroes glow like the store: brighter image, lighter fade, blue bloom */
.page-hero-bg img { opacity: .62 !important; filter: saturate(1.2) contrast(1.05) !important; }
.page-hero-bg:after { background: linear-gradient(to bottom, rgba(5,7,13,.25), var(--c-bg-0)), radial-gradient(60% 80% at 50% 0%, color-mix(in srgb, var(--c-accent) 32%, transparent), transparent 70%) !important; }
.auth-wrap .hero-media { opacity: 1; animation: none; }
/* v11: settings sessions list */
.sess-list { display: flex; flex-direction: column; gap: .5rem; }
.sess { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding: .7rem .9rem; border-radius: 1rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 45%, transparent); }
.sess.is-current { border-color: var(--c-border-strong); box-shadow: 0 0 24px -12px color-mix(in srgb, var(--c-accent) 60%, transparent); }
.sess-icon { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: .8rem; background: color-mix(in srgb, var(--c-accent) 14%, transparent); color: var(--c-accent-2); }
.sess-icon svg { width: 1.2rem; height: 1.2rem; fill: currentColor; }
.sess-main { min-width: 0; display: flex; flex-direction: column; gap: .15rem; }
.sess-main b { display: flex; align-items: center; gap: .5rem; font-size: .9rem; color: #fff; }
.sess-main b .chip { font-size: .6rem; padding: .1rem .5rem; }
.sess-main small { color: var(--c-muted); font-size: .74rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* v11: staff roster editor */
.ed-mode { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.ed-mode-opt { display: grid; grid-template-columns: auto 1fr; gap: .15rem .6rem; align-items: center; padding: .8rem .9rem; border-radius: 1rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 40%, transparent); cursor: pointer; transition: border-color .2s, background-color .2s; }
.ed-mode-opt input { grid-row: 1 / span 2; accent-color: var(--c-accent); width: 1rem; height: 1rem; }
.ed-mode-opt b { font-size: .85rem; color: #fff; }
.ed-mode-opt small { font-size: .72rem; color: var(--c-muted); }
.ed-mode-opt.is-on { border-color: var(--c-border-strong); background: color-mix(in srgb, var(--c-accent) 12%, transparent); }
.ed-roster { display: grid; gap: 1rem; }
.ed-rgroup { border-radius: 1.5rem; padding: 1rem 1.1rem 1.1rem; transition: border-color .2s, box-shadow .2s, background-color .2s; }
.ed-rgroup.is-over { border-color: var(--c-accent); box-shadow: var(--glow); background: color-mix(in srgb, var(--c-accent) 10%, transparent); }
.ed-rgroup-head { display: flex; align-items: center; gap: .6rem; margin-bottom: .75rem; }
.ed-rgroup-name { flex: 1; min-width: 0; padding: .55rem .8rem; border-radius: .8rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); color: #fff; font: inherit; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .9rem; font-weight: 700; outline: 0; }
.ed-rmembers { display: grid; gap: .45rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.ed-member { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; gap: .5rem; align-items: center; padding: .4rem .55rem .4rem .5rem; border-radius: .9rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 55%, transparent); cursor: grab; transition: border-color .2s, transform .15s; }
.ed-member:active { cursor: grabbing; }
.ed-member:hover { border-color: var(--c-border-strong); }
.ed-member img { width: 28px; height: 28px; border-radius: .5rem; image-rendering: pixelated; }
.ed-member input { min-width: 0; padding: .35rem .5rem; border-radius: .6rem; border: 1px solid transparent; background: transparent; color: var(--c-text); font: inherit; font-size: .85rem; font-weight: 600; outline: 0; }
.ed-member input:focus { border-color: var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); }
.ed-member.is-add { grid-template-columns: auto minmax(0, 1fr) auto; cursor: default; border-style: dashed; }
.ed-member.is-add input::placeholder { color: var(--c-dim); }
.ed-grip { color: var(--c-dim); font-size: .8rem; letter-spacing: -.15em; user-select: none; }

/* v12: vote rewards as proper symbols */
.reward-grid { display: grid; gap: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.reward { position: relative; display: grid; gap: .6rem; justify-items: center; padding: 1rem .75rem .9rem; border-radius: 1.25rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-accent) 5%, transparent); text-align: center; transition: border-color .2s, transform .2s, box-shadow .2s; }
.reward:hover { border-color: var(--c-border-strong); transform: translateY(-2px); box-shadow: var(--glow); }
.reward-art { position: relative; display: grid; place-items: center; width: 4.25rem; height: 4.25rem; border-radius: 1.1rem; background: radial-gradient(70% 70% at 50% 35%, color-mix(in srgb, var(--c-accent) 38%, transparent), color-mix(in srgb, var(--c-accent) 8%, transparent)); box-shadow: inset 0 1px 0 hsla(0,0%,100%,.12), 0 12px 30px -14px color-mix(in srgb, var(--c-accent) 80%, transparent); }
.reward-art svg { width: 2.1rem; height: 2.1rem; fill: #fff; filter: drop-shadow(0 4px 10px color-mix(in srgb, var(--c-accent) 70%, transparent)); }
.reward-art img { width: 2.6rem; height: 2.6rem; object-fit: contain; image-rendering: pixelated; filter: drop-shadow(0 4px 10px rgba(0,0,0,.5)); }
.reward.is-key .reward-art svg, .reward.is-coins .reward-art svg, .reward.is-credits .reward-art svg, .reward.is-crown .reward-art svg, .reward.is-star .reward-art svg { fill: #ffd86b; }
.reward.is-key .reward-art, .reward.is-coins .reward-art, .reward.is-credits .reward-art, .reward.is-crown .reward-art, .reward.is-star .reward-art { background: radial-gradient(70% 70% at 50% 35%, rgba(255, 196, 61, .42), rgba(255, 196, 61, .08)); box-shadow: inset 0 1px 0 hsla(0,0%,100%,.12), 0 12px 30px -14px rgba(255, 196, 61, .8); }
.reward.is-diamond .reward-art svg { fill: #7ff3ff; }
.reward.is-treasure-chest .reward-art svg { fill: #f0b26b; }
.reward-badge { position: absolute; top: -.45rem; right: -.6rem; padding: .15rem .5rem; border-radius: 9999px; background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2)); color: var(--c-bg-0); font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .68rem; font-weight: 800; letter-spacing: .02em; box-shadow: 0 6px 16px -6px color-mix(in srgb, var(--c-accent) 90%, transparent); }
.reward-label { font-size: .78rem; font-weight: 700; color: var(--c-text); line-height: 1.25; }
.ed-row.is-reward { grid-template-columns: 12rem 4.5rem minmax(0, 1fr) minmax(0, 1fr) auto; }
@media (max-width: 900px) { .ed-row.is-reward { grid-template-columns: 1fr 1fr; } }
.ed-reward-pick { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .4rem; align-items: center; }
.ed-reward-icon { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: .7rem; background: color-mix(in srgb, var(--c-accent) 14%, transparent); }
.ed-reward-icon svg { width: 1.2rem; height: 1.2rem; fill: var(--c-accent-2); }
.ed-reward-icon img { width: 1.6rem; height: 1.6rem; object-fit: contain; image-rendering: pixelated; }

/* v12: store editor laid out like Tebex's Packages page */
.st2-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.4rem; margin-bottom: 1rem; }
.st2-title small { display: block; color: var(--c-muted); font-size: .78rem; margin-top: .15rem; }
.st2-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.st2-filter { width: 16rem; max-width: 100%; padding: .65rem 1rem; border-radius: 9999px; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); color: var(--c-text); font: inherit; font-size: .85rem; outline: 0; }
.st2-state { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1rem; padding: .9rem 1.4rem; margin-bottom: 1rem; font-size: .85rem; color: var(--c-muted); }
.st2-state.is-live { border-color: rgba(52, 211, 153, .35); }
.st2-state.is-queue { border-color: rgba(251, 191, 36, .35); }
.st2-state-main { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.st2-state-main b { color: #fff; }
.st2-state-tools { display: flex; flex-wrap: wrap; gap: .5rem; }
.st2-queue { display: flex; flex-direction: column; gap: .4rem; margin-top: .6rem; }
.st2-queue li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto auto; gap: .75rem; align-items: center; padding: .5rem .8rem; border-radius: .8rem; border: 1px solid var(--c-border); font-size: .82rem; color: var(--c-muted); }
.st2-queue li b { color: #fff; }
.st2-queue li small { color: var(--c-dim); }
.st2-tree { display: flex; flex-direction: column; gap: 1rem; }
.st2-group { padding: .4rem; }
.st2-group-head, .st2-cat-head { display: flex; align-items: center; gap: .75rem; padding: .85rem 1rem; border-radius: 1.1rem; cursor: pointer; user-select: none; transition: background-color .2s; }
.st2-group-head:hover, .st2-cat-head:hover { background: color-mix(in srgb, var(--c-accent) 8%, transparent); }
.st2-group-head b { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: 1rem; color: #fff; }
.st2-cat-head b { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .85rem; color: #fff; }
.st2-cat-head small { color: var(--c-dim); font-size: .74rem; }
.st2-caret { margin-left: auto; color: var(--c-dim); transition: transform .2s; }
.st2-cat-head .st2-caret { margin-left: .5rem; }
.is-closed > .st2-group-head .st2-caret, .is-closed > .st2-cat-head .st2-caret { transform: rotate(-90deg); }
.st2-grip { color: var(--c-dim); font-size: 1rem; line-height: 1; cursor: grab; flex: none; }
.st2-group-body { display: flex; flex-direction: column; gap: .4rem; padding: 0 .4rem .5rem 1.6rem; }
.st2-cat { border: 1px solid var(--c-border); border-radius: 1.1rem; background: color-mix(in srgb, var(--c-bg-0) 30%, transparent); }
.st2-rows { display: flex; flex-direction: column; gap: .3rem; padding: 0 .5rem .6rem 1.4rem; }
.st2-row { position: relative; display: grid; grid-template-columns: auto 44px minmax(0, 1fr) auto auto; gap: .8rem; align-items: center; padding: .5rem .6rem .5rem .75rem; border-radius: .9rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 55%, transparent); transition: border-color .2s, background-color .2s; }
.st2-row:hover { border-color: var(--c-border-strong); background: color-mix(in srgb, var(--c-accent) 6%, transparent); }
.st2-row.is-off { opacity: .6; border-style: dashed; }
.st2-row.is-edit { border-color: var(--c-accent); box-shadow: var(--glow); opacity: 1; }
.st2-row.is-queued { border-color: rgba(251, 191, 36, .45); }
.st2-row.is-draft { border-style: dashed; }
.st2-thumb { width: 44px; height: 44px; object-fit: cover; border-radius: .7rem; background: color-mix(in srgb, var(--c-accent) 12%, transparent); }
.st2-thumb.is-draft { display: grid; place-items: center; font-size: .6rem; font-weight: 800; letter-spacing: .1em; color: var(--c-accent-2); }
.st2-row-main { min-width: 0; }
.st2-row-main b { display: block; color: #fff; font-size: .9rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.st2-price { color: var(--c-accent-2); font-weight: 800; }
.st2-row-main small { color: var(--c-muted); font-size: .74rem; }
.st2-q { color: #fbbf24; }
.st2-row-edit { display: grid; grid-template-columns: minmax(0, 1.4fr) 9rem auto auto auto; gap: .5rem; align-items: center; }
.st2-row-edit input[type="text"], .st2-money { padding: .5rem .7rem; border-radius: .7rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 70%, transparent); color: var(--c-text); font: inherit; font-size: .85rem; outline: 0; }
.st2-money { display: flex; align-items: center; gap: .3rem; color: var(--c-muted); }
.st2-money input { width: 100%; border: 0; background: transparent; color: #fff; font: inherit; font-size: .85rem; outline: 0; }
@media (max-width: 900px) { .st2-row-edit { grid-template-columns: 1fr 1fr; } .st2-row { grid-template-columns: auto 40px minmax(0, 1fr) auto; } .st2-row .st2-pill { display: none; } }
.st2-pill { padding: .2rem .6rem; border-radius: 9999px; font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; border: 1px solid transparent; }
.st2-pill.is-live { color: #34d399; border-color: rgba(52, 211, 153, .4); }
.st2-pill.is-off { color: #fbbf24; border-color: rgba(251, 191, 36, .4); }
.st2-pill.is-draft { color: var(--c-accent-2); border-color: var(--c-border-strong); }
.st2-menu { position: relative; }
.st2-dots { width: 2.2rem; height: 2.2rem; border-radius: 9999px; border: 1px solid var(--c-border); background: transparent; color: var(--c-muted); font: inherit; font-size: .7rem; letter-spacing: .1em; cursor: pointer; }
.st2-dots:hover { color: #fff; border-color: var(--c-border-strong); }
.st2-menu-list { position: absolute; right: 0; top: calc(100% + .35rem); z-index: 20; min-width: 12rem; display: flex; flex-direction: column; padding: .35rem; border-radius: .9rem; border: 1px solid var(--c-border); }
.st2-menu-list button, .st2-menu-list a { display: block; width: 100%; padding: .55rem .75rem; border: 0; border-radius: .6rem; background: transparent; color: var(--c-text); font: inherit; font-size: .82rem; text-align: left; cursor: pointer; text-decoration: none; }
.st2-menu-list button:hover, .st2-menu-list a:hover { background: color-mix(in srgb, var(--c-accent) 14%, transparent); color: #fff; }
.st2-sheet { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 1.5rem; background: rgba(5, 7, 13, .72); backdrop-filter: blur(6px); }
.st2-sheet-card { width: min(100%, 44rem); max-height: 90vh; overflow: auto; padding: 1.5rem; border-radius: 1.5rem; border: 1px solid var(--c-border); background: var(--c-bg-1); }

/* v12: one announcement bar on every site. The store's markup still carries the old inline gradient, so this wins over it. */
.fixed.inset-x-0.top-0.h-9, .ann-bar { height: 32px !important; background: linear-gradient(90deg, #1e90ff, #7dd3fc) !important; color: #05070d !important; font-size: 11px !important; font-weight: 800 !important; letter-spacing: .14em !important; text-transform: uppercase !important; text-shadow: 0 1px 0 rgba(255, 255, 255, .25); }
body:has(> .fixed.inset-x-0.top-0.h-9), body:has(> .ann-bar) { --ann-h: 32px; }


/* v13: in-game rank colours (GODLY's palette; MOD = Minecraft &3). Any element with data-rank gets its colour. */
[data-rank] { --rank: #1e90ff; }
[data-rank="OWNER"] { --rank: #ffd400; }
[data-rank="CO.OWNER"] { --rank: #a855f7; }
[data-rank="DEVELOPER"] { --rank: #6b7280; }
[data-rank="MANAGER"] { --rank: #f97316; }
[data-rank="SR.ADMIN"] { --rank: #991b1b; }
[data-rank="ADMIN"] { --rank: #ef4444; }
[data-rank="SR.MOD"] { --rank: #a855f7; }
[data-rank="MOD"] { --rank: #00aaaa; }
[data-rank="HELPER"] { --rank: #f472b6; }
.nav-rank[data-rank] { background: var(--rank); color: #0b1220; box-shadow: 0 6px 16px -8px var(--rank); }
.nav-rank[data-rank="DEVELOPER"], .nav-rank[data-rank="SR.ADMIN"] { color: #fff; }
.staff-card[data-rank] p { color: var(--rank); text-shadow: 0 0 12px color-mix(in srgb, var(--rank) 55%, transparent); }
.staff-card[data-rank] { border-color: color-mix(in srgb, var(--rank) 35%, var(--c-border)); }
.tab-btn[data-rank] { color: var(--rank); border-color: color-mix(in srgb, var(--rank) 40%, transparent); }
.tab-btn[data-rank].is-active { background: var(--rank); border-color: transparent; color: #0b1220; box-shadow: 0 8px 20px -8px var(--rank); }
.tab-btn[data-rank="DEVELOPER"].is-active, .tab-btn[data-rank="SR.ADMIN"].is-active { color: #fff; }
/* profile bubble: skin centred, three-line menu icon */
.nav-profile-btn { padding: 0 .55rem 0 .4rem; gap: .45rem; }
.nav-profile-btn img { width: 28px; height: 28px; border-radius: .55rem; display: block; }
.nav-profile-btn .chev.lines { width: 16px; height: 16px; transition: transform .2s, fill .2s; }
.nav-profile-btn .chev.lines.is-open { transform: none; fill: var(--c-accent-2); }
.nav-profile-btn[aria-expanded="true"] .chev.lines { fill: var(--c-accent-2); }
/* Copy IP shrinks to an icon once someone is signed in, so the right cluster stays short */
.nav-util:has(.nav-profile) .copy-ip span:last-child { display: none; }
.nav-util:has(.nav-profile) .copy-ip { padding-right: .875rem; }


/* v14: application form progress + answer counters */
.apply-progress { display: grid; gap: .4rem; margin-bottom: 1.75rem; }
.apply-progress-bar { height: .45rem; border-radius: 9999px; background: color-mix(in srgb, var(--c-accent) 12%, transparent); overflow: hidden; }
.apply-progress-bar span { display: block; height: 100%; border-radius: 9999px; background: linear-gradient(90deg, var(--c-accent), var(--c-accent-2)); box-shadow: 0 0 16px color-mix(in srgb, var(--c-accent) 70%, transparent); transition: width .3s var(--ease-out); }
.apply-progress small { color: var(--c-muted); font-size: .74rem; font-weight: 700; letter-spacing: .04em; }
.apply-ta { display: grid; gap: .3rem; }
.apply-count { justify-self: end; font-size: .7rem; color: var(--c-dim); }
.apply-count.is-short { color: #fbbf24; }
.apply-count.is-ok { color: #34d399; }

/* v15: staff admin — per-field copy buttons on the one-time password card, live ladder stamp */
.sadm-secret > div { position: relative; }
.sadm-copy { position: absolute; right: .55rem; top: 50%; transform: translateY(-50%); width: 2rem; height: 2rem; display: grid; place-items: center; border-radius: .6rem; border: 1px solid var(--c-border); background: color-mix(in srgb, var(--c-bg-0) 60%, transparent); color: var(--c-muted); cursor: pointer; transition: color .2s, border-color .2s, background-color .2s; }
.sadm-copy:hover { color: #fff; border-color: var(--c-border-strong); background: color-mix(in srgb, var(--c-accent) 18%, transparent); }
.sadm-copy svg { width: .95rem; height: .95rem; fill: currentColor; }
.sadm-secret code { padding-right: 2.9rem; }
.sadm-live .status-dot { display: inline-block; width: .5rem; height: .5rem; border-radius: 9999px; background: #34d399; box-shadow: 0 0 10px #34d399; animation: glow-pulse 2.4s ease-in-out infinite; vertical-align: middle; }
.sadm-ingame .nav-rank { margin-left: .3rem; vertical-align: middle; }

/* v16: chips in caps ("2FA ON"), everywhere */
.chip.is-2fa { text-transform: uppercase; letter-spacing: .08em; font-weight: 800; }

/* ---------- Axify store: basket / checkout page (v28) â€” appended to generic.css. Selectors from checkout.html. ---------- */
.checkout__page { gap: 1.25rem; }
.checkout__page--body.checkout { display: flex; flex-direction: column; gap: 1.1rem; }
/* review header */
.cart__review { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem !important; border: 1px solid var(--c-border) !important; border-radius: 1.25rem !important; background: color-mix(in srgb, var(--c-bg-0) 55%, transparent) !important; }
.cart__review--title { margin: 0 !important; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: 1.05rem; font-weight: 800; color: #fff; }
.cart__action--compress { width: 2.4rem; height: 2.4rem; border-radius: 9999px; border: 1px solid var(--c-border) !important; background: transparent !important; color: var(--c-muted) !important; display: inline-flex; align-items: center; justify-content: center; }
.cart__action--compress:hover { color: #fff !important; background: rgba(30, 144, 255, .14) !important; }
/* items */
.cart__items { padding: 1rem 1.25rem 1.1rem !important; border: 1px solid var(--c-border) !important; border-radius: 1.25rem !important; background: color-mix(in srgb, var(--c-bg-0) 55%, transparent) !important; }
.cart__items .quantity-form { display: flex; flex-direction: column; gap: .7rem; }
.cart__item { display: grid !important; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 1rem; padding: .8rem .9rem .8rem .8rem !important; border-radius: 1.1rem !important; border: 1px solid var(--c-border) !important; background: rgba(5, 7, 13, .45) !important; margin: 0 !important; transition: border-color .2s, background-color .2s; }
.cart__item:hover { border-color: var(--c-border-strong) !important; background: rgba(30, 144, 255, .07) !important; }
.cart__item--name { display: flex; align-items: center; gap: .9rem; min-width: 0; margin: 0 !important; }
.cart__item--name img { width: 62px !important; height: 62px !important; padding: .35rem; border-radius: .9rem; object-fit: contain; background: radial-gradient(70% 70% at 50% 35%, rgba(30, 144, 255, .35), rgba(30, 144, 255, .06)); border: 1px solid var(--c-border); flex: none; }
.cart__item--description { min-width: 0; }
.cart__item__description--name { margin: 0 !important; font-weight: 800; color: #fff; font-size: 1rem; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cart__item__description--price { margin: .2rem 0 0 !important; color: var(--c-accent-2); font-weight: 700; font-size: .9rem; letter-spacing: .02em; }
/* quantity: one pill  [ âˆ’ | 1 | + ] */
.cart__item > .quantity__item { margin: 0 !important; }
.cart__item .quantity__item .quantity__item { display: inline-flex !important; align-items: center; gap: 0; padding: .2rem !important; border-radius: 9999px; border: 1px solid var(--c-border); background: rgba(5, 7, 13, .65); }
.cart__items .cart__item .quantity__item .quantity__decrease, .cart__items .cart__item .quantity__item .quantity__increase { position: relative; width: 2.15rem !important; height: 2.15rem !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 9999px !important; background: transparent !important; color: #fff !important; font-size: 1.05rem; font-weight: 800; line-height: 1; display: inline-flex !important; align-items: center; justify-content: center; cursor: pointer; transition: background-color .15s; }
.cart__items .cart__item .quantity__item .quantity__decrease:hover, .cart__items .cart__item .quantity__item .quantity__increase:hover { background: rgba(30, 144, 255, .22) !important; }
.cart__items .cart__item .quantity__item .disabled__btn--qnt { opacity: .35; pointer-events: none; }
.cart__items .cart__item .quantity__item .quantity__input { width: 2.6rem !important; height: 2.15rem !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; color: #fff !important; text-align: center; font-weight: 800; font-size: .95rem; -moz-appearance: textfield; appearance: textfield; }
.cart__items .cart__item .quantity__item .quantity__input::-webkit-inner-spin-button, .cart__items .cart__item .quantity__item .quantity__input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
/* the refresh spinner only while the basket is updating (function.checkout.js adds .disabled__btn to the buttons) */
.cart__items .cart__item .quantity__item .__loading--refresh { display: none !important; position: absolute; inset: 0; margin: auto; width: 1rem; height: 1rem; font-size: 1rem; line-height: 1; color: var(--c-accent-2); }
.cart__items .cart__item .quantity__item .qty-count.disabled__btn .__loading--refresh { display: inline-block !important; }
.cart__items .cart__item .quantity__item .qty-count.disabled__btn .minus__indicator, .cart__items .cart__item .quantity__item .qty-count.disabled__btn .plus__indicator { visibility: hidden; }
/* row actions */
.cart__item--actions { display: flex; gap: .4rem; margin: 0 !important; }
.cart__action--info, .cart__action--remove { width: 2.4rem !important; height: 2.4rem !important; border-radius: 9999px !important; border: 1px solid var(--c-border) !important; background: transparent !important; color: var(--c-muted) !important; display: inline-flex !important; align-items: center; justify-content: center; font-size: 1.05rem; transition: color .15s, background-color .15s, border-color .15s; }
.cart__action--info:hover { color: #fff !important; border-color: var(--c-border-strong) !important; background: rgba(30, 144, 255, .16) !important; }
.cart__action--remove:hover { color: #fff !important; border-color: rgba(239, 68, 68, .6) !important; background: rgba(239, 68, 68, .22) !important; }
/* total */
.cart__total--price { display: flex !important; align-items: baseline; justify-content: flex-end; gap: .6rem; margin: 1rem 0 0 !important; padding: .9rem .25rem 0 !important; border-top: 1px solid var(--c-border); }
.cart__total--label { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--c-muted); }
.cart__total--amount { font-size: 1.5rem; font-weight: 900; color: #fff; letter-spacing: -.01em; }
.cart__total--amount small { font-size: .7rem; font-weight: 800; letter-spacing: .12em; color: var(--c-muted); margin-left: .25rem; }
.cart__total--coupon { font-size: .8rem; color: #86efac; }
/* section cards: coupons, agreement, finalize */
.checkout__body--separe { margin: 0 !important; padding: 1.1rem 1.25rem 1.25rem !important; border: 1px solid var(--c-border) !important; border-radius: 1.25rem !important; background: color-mix(in srgb, var(--c-bg-0) 55%, transparent) !important; }
.checkout__details--step { padding: 0 !important; margin: 0 !important; background: transparent !important; border: 0 !important; }
.checkout__details--step + .checkout__details--step { margin-top: .9rem !important; }
.checkout__details__step--header p { display: flex; align-items: center; gap: .6rem; margin: 0 0 .9rem !important; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .82rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--c-accent-2); }
.checkout__details__step--header p > span { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 9999px; border: 1px solid var(--c-border); background: rgba(30, 144, 255, .12); color: var(--c-accent-2); font-size: 1rem; }
.coupon__form form { display: flex; gap: .6rem; align-items: center; }
.coupon__form input[type="text"] { flex: 1 1 auto; height: 3rem !important; padding: 0 1.1rem !important; border-radius: 9999px !important; border: 1px solid var(--c-border) !important; background: rgba(5, 7, 13, .6) !important; color: #fff !important; font-size: .95rem; }
.coupon__form input[type="text"]:focus { outline: none; border-color: var(--c-accent) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--c-accent) 25%, transparent); }
.coupon__form .purchase__btn { width: auto !important; height: 3rem !important; padding: 0 1.4rem !important; flex: none; }
/* agreement checkboxes */
.confirm__grid { display: flex; flex-direction: column; gap: .6rem; }
.confirmation__checkbox { display: flex !important; align-items: flex-start; gap: .8rem; padding: .85rem 1rem !important; border-radius: 1rem !important; border: 1px solid var(--c-border) !important; background: rgba(5, 7, 13, .45) !important; cursor: pointer; transition: border-color .15s, background-color .15s; }
.confirmation__checkbox:hover { border-color: var(--c-border-strong) !important; }
.confirmation__checkbox:has(input:checked) { border-color: rgba(30, 144, 255, .55) !important; background: rgba(30, 144, 255, .1) !important; }
.confirmation__checkbox input { position: absolute; opacity: 0; width: 0; height: 0; }
.confirmation__checkbox .checkbox__box { flex: none; width: 1.35rem; height: 1.35rem; margin-top: .1rem; border-radius: .45rem; border: 1px solid var(--c-border-strong); background: rgba(5, 7, 13, .6); display: inline-flex; align-items: center; justify-content: center; transition: background-color .15s, border-color .15s; }
.confirmation__checkbox .checkbox__box svg { width: .85rem; height: .85rem; fill: var(--c-bg-0); opacity: 0; }
.confirmation__checkbox:has(input:checked) .checkbox__box { background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2)); border-color: transparent; }
.confirmation__checkbox:has(input:checked) .checkbox__box svg { opacity: 1; }
.confirmation__checkbox .checkbox__body { color: var(--c-text); font-size: .95rem; line-height: 1.5; }
.confirmation__checkbox .checkbox__body a { color: var(--c-accent-2); }
.confirm__step p { display: flex; align-items: center; gap: .5rem; margin: .8rem 0 0 !important; color: #fca5a5; font-size: .9rem; font-weight: 600; }
/* finalize */
tebex-checkout { display: block; }
.purchase__btn, #purchase-button { display: inline-flex !important; align-items: center; justify-content: center; width: 100%; height: 3.4rem !important; padding: 0 1.5rem !important; border: 0 !important; border-radius: 9999px !important; background: linear-gradient(120deg, var(--c-accent), var(--c-accent-2)) !important; color: var(--c-bg-0) !important; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .9rem; font-weight: 800 !important; letter-spacing: .12em; text-transform: uppercase; box-shadow: 0 12px 30px -10px color-mix(in srgb, var(--c-accent) 85%, transparent); cursor: pointer; transition: transform .2s, box-shadow .2s, opacity .2s; }
.purchase__btn:hover, #purchase-button:hover { transform: translateY(-1px); box-shadow: 0 16px 36px -10px color-mix(in srgb, var(--c-accent) 95%, transparent); }
.purchase__btn:disabled, #purchase-button:disabled { opacity: .45; transform: none; box-shadow: none; cursor: not-allowed; }
/* sidebar shopper card */
.shopper-card { text-align: center; padding: 1.25rem 1.1rem 1.1rem !important; border: 1px solid var(--c-border) !important; border-radius: 1.25rem !important; background: color-mix(in srgb, var(--c-bg-0) 55%, transparent) !important; }
.shopper-kicker { margin: 0 0 .75rem !important; font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--c-accent-2); }
.shopper-who { display: flex; flex-direction: column; align-items: center; gap: .55rem; }
.shopper-head { width: 56px !important; height: 56px !important; border-radius: .9rem; image-rendering: pixelated; border: 1px solid var(--c-border-strong); }
.shopper-name { font-family: var(--gh-font-heading, Unbounded), system-ui, sans-serif; font-size: 1.05rem; font-weight: 800; color: #fff; }
.shopper-logout { display: inline-flex !important; align-items: center; justify-content: center; margin-top: .9rem; height: 2.5rem; padding: 0 1.1rem; border-radius: 9999px; border: 1px solid rgba(239, 68, 68, .45) !important; background: rgba(239, 68, 68, .12) !important; color: #fca5a5 !important; font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; text-decoration: none !important; transition: background-color .15s, color .15s; }
.shopper-logout:hover { background: rgba(239, 68, 68, .28) !important; color: #fff !important; }
@media (max-width: 700px) { .cart__item { grid-template-columns: 1fr; } .cart__item > .quantity__item, .cart__item--actions { justify-self: start; } }

/* ---------- 2026-09-06: the website's light + interaction pass (custom.css append), same bytes on www / store / netnav ---------- */
/* ============================================================================
   LIGHT + INTERACTION REFINEMENT                                    2026-09-06
   ----------------------------------------------------------------------------
   Appended deliberately: custom.css loads after index.css and had no :root of
   its own, so redefining the tokens here wins on document order and lifts every
   existing var(--glow) site at once - the rules Edit button included - without
   touching 92KB of working CSS.

   WHAT WAS WRONG. --glow was `0 0 48px <accent> 45%`: zero offset, zero spread,
   one flat blur. That is why it read cheap. A halo with no offset has no light
   DIRECTION, so nothing looks lit from anywhere - it looks like a lamp switched
   on behind the element. And with no negative spread it has no containment, so
   it fogs outward instead of hugging the shape.

   Elsewhere in this same file the good rules already do it properly
   (`0 16px 40px -10px <accent>` + an inset top highlight). The site was not
   badly made - it was inconsistent, with the one token everything leans on
   being the weakest thing in it. This makes the token match the best work
   already here.

   HOW REAL LIGHT IS BUILT, and the order these layers must go in:
     1. a tight dark contact shadow  - depth, sits the object on the page
     2. a coloured lift, offset DOWN with negative spread - direction + reach
     3. a hairline coloured ring     - definition without a hard border
     4. an inset highlight on the top edge - the rim catching the light
   ========================================================================= */

:root {
    /* Resting elevation - used for anything raised but not interactive. */
    --glow-sm:
        0 1px 2px rgba(0, 0, 0, .5),
        0 4px 12px -6px color-mix(in srgb, var(--c-accent) 55%, transparent),
        0 0 0 1px color-mix(in srgb, var(--c-accent) 18%, transparent);

    /* The default. Every existing var(--glow) hover inherits this. */
    --glow:
        0 2px 4px rgba(0, 0, 0, .45),
        0 10px 28px -12px color-mix(in srgb, var(--c-accent) 72%, transparent),
        0 0 0 1px color-mix(in srgb, var(--c-accent) 26%, transparent),
        inset 0 1px 0 hsla(0, 0%, 100%, .09);

    /* For the few things that should genuinely dominate - primary CTAs, modals. */
    --glow-lg:
        0 4px 8px rgba(0, 0, 0, .5),
        0 22px 52px -18px color-mix(in srgb, var(--c-accent) 85%, transparent),
        0 0 0 1px color-mix(in srgb, var(--c-accent) 32%, transparent),
        inset 0 1px 0 hsla(0, 0%, 100%, .13);

    /* One easing for every interaction, so the whole site moves the same way.
       Slightly overshooting ease-out reads as responsive rather than floaty. */
    --ease-ui: cubic-bezier(.2, .8, .2, 1);
    --dur-fast: .16s;
    --dur: .24s;
}

/* ---- focus: the biggest real defect found -------------------------------
   48 :hover rules and exactly ONE :focus-visible. Keyboard users had almost no
   idea where they were. This is one ring, on everything focusable, matching the
   accent - and :focus-visible (not :focus) so a mouse click never draws it. */
a:focus-visible,
button:focus-visible,
[role="menuitem"]:focus-visible,
[tabindex]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
    outline: 2px solid var(--c-accent);
    outline-offset: 3px;
    border-radius: inherit;
}
/* Inside the dark profile dropdown an outline alone is easy to lose, so the row
   also takes a wash - the outline stays for anyone who needs the hard edge. */
.nav-profile-menu a:focus-visible,
.nav-profile-menu button:focus-visible,
[role="menu"] a:focus-visible,
[role="menu"] button:focus-visible {
    background: color-mix(in srgb, var(--c-accent) 14%, transparent);
    outline-offset: -2px;
}

/* ---- the rules Edit control ---------------------------------------------
   Named directly. It only ever set colour and dropped the flat glow on, so it
   lit up without moving - the thing that made it feel unfinished. Now it lifts,
   warms, and gains a real edge, all on the shared easing. */
.rules-edit {
    transition:
        transform var(--dur) var(--ease-ui),
        box-shadow var(--dur) var(--ease-ui),
        border-color var(--dur) var(--ease-ui),
        background var(--dur) var(--ease-ui),
        color var(--dur) var(--ease-ui);
    will-change: transform;
}
.rules-edit:hover {
    color: #fff;
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--c-accent) 55%, transparent);
    background: linear-gradient(
        160deg,
        color-mix(in srgb, var(--c-accent) 22%, transparent),
        color-mix(in srgb, var(--c-accent) 7%, transparent) 60%,
        transparent
    );
    box-shadow: var(--glow);
}
.rules-edit:active {
    transform: translateY(0);
    box-shadow: var(--glow-sm);
    transition-duration: var(--dur-fast);
}

/* ---- status dots --------------------------------------------------------
   `0 0 10px currentColor` is the same flat-halo mistake in miniature. A real
   point light is a tight bright core with a wider, weaker bloom around it. */
.gm-badge-dot,
.chip-dot,
.card-soon::before,
.rbtn .dot,
.rules-pager .tab-btn .dot {
    box-shadow:
        0 0 0 1px color-mix(in srgb, currentColor 35%, transparent),
        0 0 6px -1px currentColor,
        0 0 16px -4px currentColor;
}

/* ---- interactive surfaces -----------------------------------------------
   These already lifted on hover but several transitioned with no easing at all,
   so they moved on the browser default while their neighbours used the site's
   curve. One curve, one duration. */
.copy-ip,
.nav-login,
.nav-util-link,
.nav-profile-btn,
.sadm-card,
.card-add,
.card-explore,
.rbtn {
    transition:
        transform var(--dur) var(--ease-ui),
        box-shadow var(--dur) var(--ease-ui),
        border-color var(--dur) var(--ease-ui),
        background-color var(--dur) var(--ease-ui),
        color var(--dur) var(--ease-ui);
}

/* Pressing something should acknowledge the press - none of these did. */
.copy-ip:active,
.nav-login:active,
.nav-util-link:active,
.sadm-card:active,
.card-add:active,
.rbtn:active {
    transform: translateY(0) scale(.985);
    transition-duration: var(--dur-fast);
}

/* The profile button is the one control on every page; while its menu is open
   it should read as held down rather than merely hovered. */
.nav-profile-btn[aria-expanded="true"] {
    background: color-mix(in srgb, var(--c-accent) 12%, transparent);
    border-color: color-mix(in srgb, var(--c-accent) 45%, transparent);
}

/* ---- pointer-tracked highlight ------------------------------------------
   The rules buttons already painted a coloured wash, but it was anchored at
   `0% 50%` - pinned to the left edge - so it sat in the same place wherever the
   cursor was. That fixed anchor is what made it read as a decal stuck on the
   card rather than as light falling on it.

   Only the ANCHOR changes here: the same colour, the same rank variable, now
   positioned at the pointer. The `0% 50%` fallback is kept in every var(), so
   without JS, on a touchscreen, or before the script loads, it renders exactly
   as it does today. Nothing on the page depends on the script running.

   Fine pointers only - a highlight frozen where a finger last tapped looks
   broken, and there is no hover on touch to justify it. */
@media (hover: hover) and (pointer: fine) {

    .rbtn::before {
        background: radial-gradient(
            circle 240px at var(--mx, 0%) var(--my, 50%),
            color-mix(in srgb, var(--rc, var(--c-accent)) 32%, transparent),
            color-mix(in srgb, var(--rc, var(--c-accent)) 12%, transparent) 38%,
            transparent 68%
        );
    }
    /* The big tiles are several times the area, so the same radius would read as
       a small bright dot instead of a light source. */
    .rbtn.is-big::before {
        background: radial-gradient(
            circle 360px at var(--mx, 50%) var(--my, 50%),
            color-mix(in srgb, var(--rc, var(--c-accent)) 28%, transparent),
            color-mix(in srgb, var(--rc, var(--c-accent)) 10%, transparent) 40%,
            transparent 70%
        );
    }

    /* These four had no wash at all - they only changed border and shadow. Given
       the same treatment so a hover means the same thing everywhere on the site.
       Verified first that none of them already uses ::after. */
    .card-explore,
    .card-add,
    .sadm-card,
    .rules-edit {
        position: relative;
        isolation: isolate;
    }
    .card-explore::after,
    .card-add::after,
    .sadm-card::after,
    .rules-edit::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        border-radius: inherit;
        pointer-events: none;
        opacity: 0;
        transition: opacity var(--dur) var(--ease-ui);
        background: radial-gradient(
            circle 280px at var(--mx, 50%) var(--my, 50%),
            color-mix(in srgb, var(--c-accent) 22%, transparent),
            color-mix(in srgb, var(--c-accent) 8%, transparent) 40%,
            transparent 70%
        );
    }
    .card-explore:hover::after,
    .card-add:hover::after,
    .sadm-card:hover::after,
    .rules-edit:hover::after {
        opacity: 1;
    }
    /* Vote links and staff cards get the same tracked light. .vote-link is
       Tailwind-styled with no rule of its own, so it needs the positioning and
       the radius stated here rather than inherited. */
    .vote-link,
    .staff-card {
        position: relative;
        isolation: isolate;
    }
    .vote-link::after,
    .staff-card::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        border-radius: inherit;
        pointer-events: none;
        opacity: 0;
        transition: opacity var(--dur) var(--ease-ui);
    }
    .vote-link::after {
        background: radial-gradient(
            circle 260px at var(--mx, 50%) var(--my, 50%),
            color-mix(in srgb, var(--c-accent) 20%, transparent),
            color-mix(in srgb, var(--c-accent) 7%, transparent) 42%,
            transparent 70%
        );
    }
    /* Staff cards carry a rank colour, so the light is that rank's - the same
       rule as the rules buttons, which is what makes the site feel of a piece. */
    .staff-card::after {
        background: radial-gradient(
            circle 300px at var(--mx, 50%) var(--my, 50%),
            color-mix(in srgb, var(--rank, var(--c-accent)) 24%, transparent),
            color-mix(in srgb, var(--rank, var(--c-accent)) 9%, transparent) 42%,
            transparent 70%
        );
    }
    .vote-link:hover::after,
    .staff-card:hover::after {
        opacity: 1;
    }

    /* The rules Edit button already takes a gradient wash on hover, so its
       spotlight is dialled back - two washes at full strength muddies both. */
    .rules-edit::after {
        background: radial-gradient(
            circle 200px at var(--mx, 50%) var(--my, 50%),
            color-mix(in srgb, var(--c-accent) 16%, transparent),
            transparent 65%
        );
    }
}

/* ---- vote reward badges (x3 / x500) -------------------------------------
   The generic .reward-badge already sits top-right, but line 920 overrode it to
   `bottom: .15rem` for the image rewards - so on exactly the tiles being looked
   at, the multiplier sat at the BOTTOM right, tucked against the artwork.

   Two changes. The art box drops to `position: static` so the badge's
   containing block becomes the CARD rather than the image well, which is what
   lets it reach the card's true top-right corner. Then it is placed there,
   clear of the render. Nothing else in the image variant relies on that
   positioning - the img is a centred grid child, unaffected. */
.reward:has(.reward-art img) .reward-art {
    position: static;
}
.reward:has(.reward-art img) .reward-badge.is-pixel {
    top: .55rem;
    right: .65rem;
    bottom: auto;
    left: auto;
    z-index: 2;
    /* Legible over pixel art of any brightness, without a hard plate behind it. */
    text-shadow:
        0 1px 0 rgba(0, 0, 0, .55),
        0 2px 8px rgba(0, 0, 0, .5);
}

/* ---- vote reward labels --------------------------------------------------
   .reward is `display:grid; justify-items:center`, which centres each child
   BOX - it says nothing about the text inside that box. .reward-label never set
   text-align, so a one-line label ("Jail Credits") looked centred by accident
   while a wrapping one ("Random Crate Keys") rendered both lines left-aligned
   inside a centred box. That is why one sat further over than the other.

   text-wrap: balance splits the two lines evenly rather than leaving a long
   first line and one orphan word, which is what makes a wrapped label look
   deliberate instead of squeezed. */
.reward-label {
    text-align: center;
    text-wrap: balance;
    max-width: 14ch;
    margin-inline: auto;
}
.reward:has(.reward-art img) .reward-label {
    max-width: 16ch;
}

/* ---- rank pills: the "cheap" glow ---------------------------------------
   The active rank tab was `background: var(--rank)` with a single soft shadow -
   a flat colour block. Nothing catches light, so it reads as a swatch rather
   than an object, which is exactly the cheap look.

   Same four-layer treatment as the rest of the site, keyed to --rank so every
   rank keeps its own colour: a gradient across the fill so it is not one dead
   tone, a rim highlight on the top edge, a dark contact shadow for depth, and
   the coloured lift beneath it. */
.tab-btn[data-rank].is-active {
    background:
        linear-gradient(
            170deg,
            color-mix(in srgb, var(--rank) 92%, #fff),
            var(--rank) 45%,
            color-mix(in srgb, var(--rank) 86%, #000)
        );
    box-shadow:
        0 1px 2px rgba(0, 0, 0, .45),
        0 10px 24px -10px color-mix(in srgb, var(--rank) 85%, transparent),
        0 0 0 1px color-mix(in srgb, var(--rank) 45%, transparent),
        inset 0 1px 0 hsla(0, 0%, 100%, .28);
}
.nav-rank[data-rank] {
    background:
        linear-gradient(
            170deg,
            color-mix(in srgb, var(--rank) 92%, #fff),
            var(--rank) 45%,
            color-mix(in srgb, var(--rank) 86%, #000)
        );
    box-shadow:
        0 1px 2px rgba(0, 0, 0, .4),
        0 6px 16px -8px color-mix(in srgb, var(--rank) 80%, transparent),
        inset 0 1px 0 hsla(0, 0%, 100%, .25);
}
/* The rank name under a staff card used a flat `0 0 12px` halo - the same
   omnidirectional mistake. A tight core with a wider, weaker bloom reads as lit
   text rather than blurred text. */
.staff-card[data-rank] p {
    text-shadow:
        0 0 1px color-mix(in srgb, var(--rank) 60%, transparent),
        0 0 8px color-mix(in srgb, var(--rank) 45%, transparent),
        0 0 22px color-mix(in srgb, var(--rank) 25%, transparent);
}
/* The card itself should acknowledge its rank a little more than a border tint. */
.staff-card[data-rank] {
    box-shadow:
        0 1px 2px rgba(0, 0, 0, .4),
        0 14px 34px -20px color-mix(in srgb, var(--rank) 60%, transparent);
}

/* ---- reduced motion -----------------------------------------------------
   There was no handling at all. Anyone who has asked their OS to stop moving
   things was getting every transform and every pulse anyway. Colour and shadow
   still change, so nothing becomes unreadable - only the movement stops. */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }
    .rules-edit:hover,
    .copy-ip:hover,
    .nav-login:hover,
    .nav-util-link:hover,
    .sadm-card:hover,
    .card-add:hover,
    .rbtn:hover,
    .gm-body .prose ul > li:hover {
        transform: none;
    }
}

/* ============================================================================
   NAVBAR: pointer-tracked light on the pills                        2026-09-06
   The same treatment the cards got, on every control in the header: a soft
   accent wash anchored where the cursor is (--mx/--my from pointer-glow.js),
   painted in ::before so the active-page underline in ::after is untouched.
   Static fallback at the pill's centre; fine pointers only; rest of the pill
   unchanged when the script is absent.
   ========================================================================= */
@media (hover: hover) and (pointer: fine) {
    .nav-link, .nav-util-link, .nav-status, .nav-login, .nav-profile-btn, .copy-ip, .nav-store {
        position: relative; isolation: isolate;
    }
    .nav-link::before, .nav-util-link::before, .nav-status::before, .nav-login::before, .nav-profile-btn::before, .copy-ip::before, .nav-store::before {
        content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none; opacity: 0;
        transition: opacity var(--dur, .24s) var(--ease-ui, ease);
        background: radial-gradient(circle 110px at var(--mx, 50%) var(--my, 50%),
            color-mix(in srgb, var(--c-accent) 34%, transparent),
            color-mix(in srgb, var(--c-accent) 12%, transparent) 45%,
            transparent 78%);
    }
    .nav-link:hover::before, .nav-util-link:hover::before, .nav-status:hover::before, .nav-login:hover::before, .nav-profile-btn:hover::before, .copy-ip:hover::before, .nav-store:hover::before { opacity: 1; }
    .nav-util-link:hover, .nav-status:hover, .nav-login:hover, .nav-profile-btn:hover, .copy-ip:hover { box-shadow: var(--glow-sm); border-color: color-mix(in srgb, var(--c-accent) 45%, transparent); }
    .nav-store:hover, .nav-login:hover { box-shadow: var(--glow); }
}

/* ---- v35 (2026-09-07) shared navbar Status pill ----
   The Status pill had fallen out of the bar.
   ROOT CAUSE: `.nav-status` is laid out absolutely for the narrow layout
   (`position:absolute; left:0; top:50%; transform:translateY(-50%)`) and the
   >=1024px grid rule takes that back with `position: static`. The v34
   pointer-wash block then re-set `position: relative` on EVERY header pill so
   its ::before could be anchored to it - which brought `top: 50%` back to life,
   this time as a RELATIVE offset. The pill was pushed 38px down and clipped by
   the bottom edge of the header, on the panel, the webmail and the store at
   once (this file is the shared navbar's stylesheet).
   The positioning is not what is wrong - the leftover offsets are.
   ========================================================================= */
.nav-status { left: auto; right: auto; top: auto; bottom: auto; }
@media (min-width: 1024px) {
    .site-nav > .container-x > .nav-status { align-self: center; }
    .nav-status:hover, .nav-status.is-here { transform: translateY(-2px); }
}

/* ============================================================================
   v44 (2026-09-07)  LIGHT DISCIPLINE - the shared bundle (netnav shadow root on
   the panel and the mail, and the store, which renders this in its own light DOM)
   ----------------------------------------------------------------------------
   Same change as the website's own sheet, so the bar cannot look different from
   the page under it. The tokens had the right SHAPE since 09-06 but the wrong
   INTENSITY: the coloured layer sat at 55-85% alpha and every pill carried a
   white rim at 35%. Black does the depth now; the accent only tints the far
   edge, at roughly a third of its old strength, pushed out on a deeper negative
   spread so it hugs the shape instead of fogging around it.
   ========================================================================= */
:root, :host {
    --glow-sm:
        0 1px 2px rgba(0, 0, 0, .55),
        0 6px 16px -12px rgba(0, 0, 0, .7),
        0 0 0 1px color-mix(in srgb, var(--c-accent) 10%, transparent);

    --glow:
        0 1px 2px rgba(0, 0, 0, .5),
        0 10px 24px -16px rgba(0, 0, 0, .75),
        0 14px 32px -20px color-mix(in srgb, var(--c-accent) 34%, transparent),
        0 0 0 1px color-mix(in srgb, var(--c-accent) 13%, transparent),
        inset 0 1px 0 hsla(0, 0%, 100%, .06);

    --glow-lg:
        0 2px 4px rgba(0, 0, 0, .55),
        0 18px 42px -24px rgba(0, 0, 0, .85),
        0 28px 64px -32px color-mix(in srgb, var(--c-accent) 42%, transparent),
        0 0 0 1px color-mix(in srgb, var(--c-accent) 16%, transparent),
        inset 0 1px 0 hsla(0, 0%, 100%, .08);
}

.nav-status, .nav-store, .btn-primary, .btn.btn-primary, .nav-cta {
    box-shadow:
        0 1px 2px rgba(0, 0, 0, .5),
        0 8px 20px -14px rgba(0, 0, 0, .8),
        0 12px 28px -18px color-mix(in srgb, var(--c-accent) 38%, transparent),
        inset 0 1px 0 hsla(0, 0%, 100%, .11) !important;
}
.nav-status:hover, .nav-store:hover, .btn-primary:hover, .btn.btn-primary:hover, .nav-cta:hover {
    box-shadow:
        0 2px 4px rgba(0, 0, 0, .5),
        0 12px 26px -16px rgba(0, 0, 0, .85),
        0 18px 38px -22px color-mix(in srgb, var(--c-accent) 48%, transparent),
        inset 0 1px 0 hsla(0, 0%, 100%, .13) !important;
}

.page-hero h1, .hero-title, .gm-hero .gm-title {
    text-shadow:
        0 1px 0 rgba(0, 0, 0, .6),
        0 3px 14px rgba(0, 0, 0, .75),
        0 10px 40px rgba(0, 0, 0, .55),
        0 0 26px color-mix(in srgb, var(--c-accent) 14%, transparent);
}
.gm-prisons .gm-title {
    text-shadow:
        0 1px 0 rgba(0, 0, 0, .6),
        0 3px 14px rgba(0, 0, 0, .75),
        0 10px 40px rgba(0, 0, 0, .55),
        0 0 26px rgba(168, 85, 247, .16);
}

.auth-logo, .site-footer img, footer .footer-logo, footer img.footer-mark {
    filter:
        drop-shadow(0 2px 4px rgba(0, 0, 0, .6))
        drop-shadow(0 14px 26px rgba(0, 0, 0, .5))
        drop-shadow(0 10px 30px color-mix(in srgb, var(--c-accent) 22%, transparent));
}

.st-dot, .chip-dot, .status-dot, .sadm-live .status-dot, .gm-badge-dot, .rbtn .dot {
    box-shadow:
        0 0 0 1px color-mix(in srgb, currentColor 35%, transparent),
        0 0 6px -1px currentColor,
        0 0 14px -6px currentColor;
}
.st-dot { box-shadow: 0 0 0 1px color-mix(in srgb, var(--st, #34d399) 35%, transparent), 0 0 6px -1px var(--st, #34d399), 0 0 16px -7px var(--st, #34d399); }
@keyframes st-pulse { 50% { box-shadow: 0 0 0 1px color-mix(in srgb, var(--st, #34d399) 45%, transparent), 0 0 8px -1px var(--st, #34d399), 0 0 22px -8px var(--st, #34d399); } }
.rbtn .dot { box-shadow: 0 0 0 1px color-mix(in srgb, var(--rc, var(--c-accent)) 35%, transparent), 0 0 6px -1px var(--rc, var(--c-accent)); }

.gm-body .prose h2::before, .rules-body .rules-section > h2::before,
.apply-list li::before, .card-soon::before {
    box-shadow: 0 0 6px -2px currentColor, 0 0 0 1px color-mix(in srgb, currentColor 25%, transparent);
}
.gm-body .prose ul > li > .lvl { box-shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 0 0 1px color-mix(in srgb, var(--c-accent) 16%, transparent); }
.apply-progress-bar span { box-shadow: 0 0 10px -4px color-mix(in srgb, var(--c-accent) 60%, transparent); }
.apply-done svg { filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .55)) drop-shadow(0 0 14px rgba(52, 211, 153, .35)); }
.rules-pager .tab-btn.is-active { box-shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 8px 18px -14px color-mix(in srgb, var(--rc, var(--c-accent)) 55%, transparent); }
.copy-ip.is-copied { box-shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 8px 18px -14px rgba(52, 211, 153, .55); }
.staff-card[data-rank] p { text-shadow: 0 1px 0 rgba(0, 0, 0, .55), 0 0 18px color-mix(in srgb, var(--rank) 18%, transparent); }

/* ---- v44b (2026-09-07) a clipped-gradient heading cannot take a text-shadow ----
   The hero headings are a <span class="text-gradient"> - a linear-gradient with
   `background-clip: text` and `-webkit-text-fill-color: transparent`. The letters
   have NO fill of their own: what you see is the gradient showing through the
   glyph shape. A text-shadow on such a heading is therefore painted INSIDE the
   letters, not behind them.
      That is what the old `0 0 30px <accent> 55%` was really doing: the blue was
   in the word, not around it, which is exactly why it read as a cheap neon
   sticker rather than a lit heading. Swapping it for dark layers made the same
   mistake in the other direction and turned the word grey.
      Separation for these headings comes from `filter: drop-shadow()`, which acts
   on the PAINTED RESULT - the gradient stays clean and the shadow lands behind
   it, where a shadow belongs. --- */
.page-hero h1, .hero-title, .gm-hero .gm-title, .gm-prisons .gm-title, .text-glow {
    text-shadow: none;
}
.text-gradient { text-shadow: none !important; }
.page-hero h1, .hero-title, .gm-hero .gm-title, .gm-prisons .gm-title {
    filter:
        drop-shadow(0 1px 0 rgba(0, 0, 0, .5))
        drop-shadow(0 3px 10px rgba(0, 0, 0, .7))
        drop-shadow(0 14px 34px rgba(0, 0, 0, .5));
}
/* headings that are NOT a clipped gradient still want a real text-shadow: a
   filter on a solid heading would blur its own antialiasing */
h1:not(:has(.text-gradient)).text-glow, h2.text-glow, h3.text-glow {
    filter: none;
    text-shadow: 0 1px 0 rgba(0, 0, 0, .55), 0 3px 14px rgba(0, 0, 0, .7);
}

/* ---- v44d (2026-09-07) the last of the loud light ----
   Four rules outranked the pass because they carry a state or a parent in the
   selector, and one lives in the built theme sheet rather than here. Measured on
   the live page rather than guessed: this is every remaining declaration on www
   with a non-black shadow above 45% alpha, or a flat `0 0 Npx` halo. --- */

/* the live dot: `body[data-online=true] .status-dot` is (0,2,1) and beat the
   plain .status-dot rule. A dot may glow - ringed and tight, not a soft cloud
   twice its own width. */
body[data-online="true"] .status-dot,
.card-chip-live .status-dot, .copy-ip .status-dot, .sadm-live .status-dot {
    box-shadow: 0 0 0 1px rgba(52, 211, 153, .4), 0 0 6px -1px #34d399, 0 0 16px -7px #34d399;
}
body[data-online="false"] .status-dot {
    box-shadow: 0 0 0 1px rgba(248, 113, 113, .4), 0 0 6px -1px #f87171, 0 0 16px -7px #f87171;
}

/* the hero mark threw a 40px accent cloud at 55% with only a 2px dark layer, so
   it floated over the art instead of sitting in it */
.bubble-logo {
    filter:
        drop-shadow(0 2px 4px rgba(0, 0, 0, .6))
        drop-shadow(0 16px 30px rgba(0, 0, 0, .55))
        drop-shadow(0 14px 36px color-mix(in srgb, var(--c-accent) 24%, transparent));
}
.footer-brand img {
    filter:
        drop-shadow(0 2px 4px rgba(0, 0, 0, .6))
        drop-shadow(0 12px 24px rgba(0, 0, 0, .5))
        drop-shadow(0 10px 28px color-mix(in srgb, var(--c-accent) 20%, transparent));
}

/* brand-coloured pills were the brightest things on the page: an 80% coloured
   shadow with a 25% white stripe along the top edge */
.btn-discord {
    box-shadow:
        0 1px 2px rgba(0, 0, 0, .5),
        0 8px 20px -14px rgba(0, 0, 0, .8),
        0 12px 28px -18px rgba(88, 101, 242, .45),
        inset 0 1px 0 hsla(0, 0%, 100%, .1);
}
.btn-discord:hover {
    box-shadow:
        0 2px 4px rgba(0, 0, 0, .5),
        0 12px 26px -16px rgba(0, 0, 0, .85),
        0 18px 38px -22px rgba(88, 101, 242, .55),
        inset 0 1px 0 hsla(0, 0%, 100%, .12);
}
.nav-util-link.is-login {
    box-shadow:
        0 1px 2px rgba(0, 0, 0, .5),
        0 8px 20px -14px rgba(0, 0, 0, .8),
        0 12px 28px -18px color-mix(in srgb, var(--c-accent) 38%, transparent),
        inset 0 1px 0 hsla(0, 0%, 100%, .11);
}
.nav-util-link.is-2fa {
    box-shadow:
        0 1px 2px rgba(0, 0, 0, .5),
        0 8px 20px -14px rgba(0, 0, 0, .8),
        0 12px 28px -18px rgba(245, 158, 11, .38),
        inset 0 1px 0 hsla(0, 0%, 100%, .11);
}

/* ---- v44e (2026-09-07) the store's own furniture ----
   Measured on the live store after the bundle push. These three are store-only
   selectors, so the pass could not have reached them from the website's sheet:
   the basket button carried an 85% accent shadow with a white rim on top, the
   support button a 70% one, and the active nav link was both ringed at 45% and
   lit at 60% from outside. Same rule as everywhere else - the dark layers do the
   depth, the accent only tints the far edge. --- */
button.profile-avatar.shopper-basket, .shopper-basket, .basket-button {
    box-shadow:
        0 1px 2px rgba(0, 0, 0, .5),
        0 8px 20px -14px rgba(0, 0, 0, .8),
        0 12px 28px -18px color-mix(in srgb, var(--c-accent) 38%, transparent),
        inset 0 1px 0 hsla(0, 0%, 100%, .11) !important;
}
button.profile-avatar.shopper-basket:hover, .shopper-basket:hover, .basket-button:hover {
    box-shadow:
        0 2px 4px rgba(0, 0, 0, .5),
        0 12px 26px -16px rgba(0, 0, 0, .85),
        0 18px 38px -22px color-mix(in srgb, var(--c-accent) 48%, transparent),
        inset 0 1px 0 hsla(0, 0%, 100%, .13) !important;
}
a.support-button, .support-button {
    box-shadow:
        0 1px 2px rgba(0, 0, 0, .5),
        0 8px 20px -14px rgba(0, 0, 0, .8),
        0 12px 28px -18px color-mix(in srgb, var(--c-accent) 34%, transparent) !important;
}
.nav-link.is-active, a.nav-link.is-active {
    box-shadow:
        inset 0 0 0 1px color-mix(in srgb, var(--c-accent) 38%, transparent),
        0 1px 2px rgba(0, 0, 0, .5),
        0 8px 20px -16px color-mix(in srgb, var(--c-accent) 35%, transparent) !important;
}
