/* ================================================================
   FPFX — legal routes.

   THE GROUND IS NOT PAINTED HERE ANY MORE.
   ----------------------------------------------------------------
   This file used to open `.legal-body` with a flat background colour
   that measured hue 260 at 27% saturation — a violet. (Written as a
   hue rather than quoted as a literal, so a warm-only sweep of this
   tree does not trip over this file's own comments.) It sat on the
   BODY element of all seven policy routes, and was therefore the true
   bottom of the stack on every one of them. Same violet base the homepage was
   carrying, and it fails Aurora's warm-only rule for the same reason:
   every warm layer above it is translucent, so wherever those layers
   thin, the violet is what shows through. Warm veneer, cool shadows.

   The ground now comes from ONE place for the whole platform —
   `.au-host` in assets/css/fpfx-aurora.css, which paints the four-stop
   hue-30 radial AND the single-octave dither that is the only thing
   that removes banding from a ramp this shallow. A body background set
   here would replace both, because `background:` is a shorthand and
   resets background-image to none along with the colour. That is not a
   theory: it is measured behaviour, and it is still happening on this
   surface from two other files (see the note on the fallback below).

   The fallback rule keeps a floor under the page for any surface that
   has not linked fpfx-aurora.css. `body:not(.au-host)` can never fight
   the Aurora ground, because it only matches when the Aurora ground is
   not there — which is the whole point of writing it that way rather
   than as a plain `.legal-body{background:...}` that has to win or lose
   a cascade race against a file loaded three <link>s later.
   ================================================================ */
.legal-body{color:var(--text);min-height:100vh;
  /* THE CALM INTENSITY, AND WHY IT IS SET HERE RATHER THAN ON THE TEMPLATE.
     Aurora runs the atmosphere at --aurora-strength:1 for marketing, auth and
     empty states and .38 for anything carrying figures. These seven documents
     are the densest reading on the platform and /rules carries the full
     challenge-rule matrices, so marketing-intensity light under them is the
     case the .38 rung exists for. It scales the strata opacity AND their drift
     amplitude off this one variable, so the atmosphere gets calmer in motion
     as well as in luminance.

     It is set on .legal-body rather than as an inline style on <body> in
     legal-layout.php for a concrete reason: that tag already emits a
     CONDITIONAL style attribute for the campaign theme, so appending a second
     one would produce two style attributes on any page where a campaign theme
     is active and the browser would drop one. Setting the custom property on
     the body element in CSS also beats the inherited :root value outright,
     with no cascade race against fpfx-aurora.css whatever the link order. */
  --aurora-strength:.38}
body:not(.au-host).legal-body{background:var(--bg,#0A0806)}
.legal-reading-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:140;background:rgba(255,255,255,.025)}.legal-reading-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#e19b4a,#dda92d);box-shadow:0 0 18px rgba(221,169,45,.65);will-change:transform}.legal-header{position:sticky}.legal-header .logo{display:flex;align-items:center}.legal-header .menu{width:46px;height:46px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.035);padding:13px;cursor:pointer}.legal-header .menu i{display:block;height:2px;background:#fff;border-radius:3px;transition:transform .22s ease,opacity .22s ease}.legal-header .menu i+i{margin-top:7px}.legal-main{position:relative;z-index:3}.legal-hero{position:relative;min-height:650px;padding:112px max(5vw,28px) 96px;display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line)}.legal-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 24%,rgba(221,169,45,.16),transparent 35%),radial-gradient(circle at 18% 40%,rgba(225,155,74,.25),transparent 42%);pointer-events:none}.legal-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.024) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.024) 1px,transparent 1px);background-size:74px 74px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.72),transparent 90%);opacity:.75}.legal-orbit{position:absolute;border:1px solid rgba(241,211,168,.13);border-radius:50%;pointer-events:none;box-shadow:inset 0 0 70px rgba(225,156,72,.035)}.legal-orbit:before,.legal-orbit:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#e5bc5c;box-shadow:0 0 22px #e5bc5c}.legal-orbit-one{width:620px;height:620px;right:-180px;top:-145px;animation:legalOrbit 24s linear infinite}.legal-orbit-one:before{left:64px;top:100px}.legal-orbit-two{width:390px;height:390px;right:5vw;top:42px;animation:legalOrbitReverse 18s linear infinite}.legal-orbit-two:after{right:34px;bottom:80px;background:#e9b278;box-shadow:0 0 22px #e9b278}.legal-hero-inner{position:relative;z-index:2;width:min(1180px,100%);margin:0 auto}.legal-breadcrumb{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#91897a;font-size:12px;margin-bottom:38px}.legal-breadcrumb a{color:#dfd4c6}.legal-breadcrumb strong{color:#fcf7f0;font-weight:600}.legal-hero .kicker{color:#efcd9c}.legal-hero h1{font:800 clamp(58px,8vw,116px)/.88 var(--au-disp,"Outfit",system-ui,sans-serif);letter-spacing:-.075em;max-width:1080px;margin-bottom:28px;background:linear-gradient(105deg,#fff 8%,#f4e7d7 48%,#eac081 82%,#e0b13f);-webkit-background-clip:text;color:transparent}.legal-hero-inner>p{max-width:800px;color:#cdc4b8;font-size:clamp(17px,2vw,22px);line-height:1.75;margin-bottom:28px}.legal-meta-row{display:flex;gap:12px 24px;flex-wrap:wrap;color:#a89b8a;font-size:12px}.legal-meta-row span{display:flex;align-items:center;gap:8px}.legal-meta-row i{width:7px;height:7px;border-radius:50%;background:#e6b262;box-shadow:0 0 13px rgba(230,178,98,.9)}.legal-highlight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:55px}.legal-highlight{padding:24px;border:1px solid rgba(239,205,155,.19);border-radius:20px;background:linear-gradient(145deg,rgba(41,28,13,.78),rgba(19,13,6,.8));box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 24px 70px rgba(0,0,0,.25);backdrop-filter:blur(16px)}.legal-highlight small{display:block;color:#c8ae88;font-size:10px;letter-spacing:.16em;font-weight:800;margin-bottom:11px}.legal-highlight strong{display:block;font:700 18px/1.35 var(--au-disp,"Outfit",system-ui,sans-serif);color:#fff;margin-bottom:7px}.legal-highlight p{margin:0;color:#9c9282;font-size:12px;line-height:1.6}.legal-shell{width:min(1400px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:280px minmax(0,1fr);gap:58px;padding:90px 0 125px}.legal-toc{position:sticky;top:110px;align-self:start;padding:23px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(160deg,rgba(39,26,11,.82),rgba(15,10,5,.9));backdrop-filter:blur(18px);box-shadow:0 24px 70px rgba(0,0,0,.25)}.legal-toc-label{display:block;color:#d2ad79;font-size:10px;font-weight:800;letter-spacing:.19em;margin:2px 0 16px}.legal-toc nav{display:flex;flex-direction:column;gap:3px}.legal-toc nav a{display:grid;grid-template-columns:31px 1fr;align-items:center;gap:8px;padding:9px 8px;border-radius:10px;color:#a8a092;font-size:12px;line-height:1.35;transition:background .2s ease,color .2s ease,transform .2s ease}.legal-toc nav a span{color:#73634d;font:600 10px/1 var(--au-mono,"JetBrains Mono",ui-monospace,monospace)}.legal-toc nav a:hover,.legal-toc nav a.is-active{color:#fff;background:rgba(231,184,110,.09);transform:translateX(3px)}.legal-toc nav a.is-active span{color:#e7bf69}.legal-help-card{margin-top:20px;padding:17px;border-radius:15px;background:linear-gradient(135deg,rgba(225,155,74,.13),rgba(221,169,45,.08));border:1px solid rgba(234,189,124,.15)}.legal-help-card span{display:block;font-weight:800;font-size:12px;margin-bottom:7px}.legal-help-card p{color:#9c9486;font-size:11px;line-height:1.55;margin-bottom:10px}.legal-help-card a{font-size:11px;color:#eece98;font-weight:700;overflow-wrap:anywhere}.legal-document{min-width:0}.legal-callout{display:grid;grid-template-columns:110px 1fr;gap:24px;padding:25px 28px;border-radius:20px;margin-bottom:20px;border:1px solid rgba(239,206,156,.24);background:linear-gradient(120deg,rgba(225,155,74,.15),rgba(221,169,45,.075))}.legal-callout>span{font-size:10px;font-weight:800;letter-spacing:.17em;color:#ecc88b}.legal-callout p{margin:0;color:#d6cfc5;line-height:1.75}.legal-callout-warning{border-color:rgba(255,183,80,.25);background:linear-gradient(120deg,rgba(255,151,55,.105),rgba(221,169,45,.05))}.legal-section{display:grid;grid-template-columns:70px minmax(0,1fr);gap:26px;padding:48px 0;border-bottom:1px solid rgba(243,218,180,.105);scroll-margin-top:105px}.legal-section-number{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;border:1px solid rgba(236,196,137,.22);background:rgba(225,155,74,.08);color:#eabf80;font:700 12px/1 var(--au-mono,"JetBrains Mono",ui-monospace,monospace);position:sticky;top:114px;align-self:start}.legal-section-content h2{font-size:clamp(29px,3.4vw,46px);line-height:1.05;letter-spacing:-.04em;margin-bottom:22px}.legal-section-content h3{font:700 19px/1.35 var(--au-disp,"Outfit",system-ui,sans-serif);margin:30px 0 12px;color:#F5F0E8}.legal-section-content p,.legal-section-content li{color:#bdb5aa;font-size:15px;line-height:1.82}.legal-section-content p strong,.legal-section-content li strong{color:#f4ece2}.legal-section-content a{color:#ecc488;text-decoration:underline;text-decoration-color:rgba(236,196,136,.35);text-underline-offset:3px}.legal-section-content ul,.legal-section-content ol{margin:18px 0 22px;padding-left:22px}.legal-section-content li{padding-left:5px;margin:8px 0}.legal-section-content blockquote{margin:22px 0;padding:18px 22px;border-left:3px solid #e6b365;border-radius:0 14px 14px 0;background:rgba(230,179,101,.065);color:#dfd6ca;line-height:1.75}.legal-inline-note{padding:18px 20px;border:1px solid rgba(235,193,132,.14);border-radius:15px;background:rgba(255,255,255,.025);margin:20px 0;color:#cfc7bd!important}.legal-table-wrap{overflow-x:auto;margin:24px 0;border:1px solid rgba(242,214,173,.15);border-radius:17px}.legal-table{width:100%;border-collapse:collapse;min-width:650px;background:rgba(21,14,7,.55)}.legal-table th,.legal-table td{text-align:left;padding:15px 17px;border-bottom:1px solid rgba(244,220,185,.105);vertical-align:top}.legal-table th{color:#efe6d9;font-size:11px;letter-spacing:.09em;text-transform:uppercase;background:rgba(181,119,36,.09)}.legal-table td{color:#b1aa9d;font-size:13px;line-height:1.62}.legal-table tr:last-child td{border-bottom:0}.legal-related{padding-top:80px}.legal-related h2{font-size:clamp(38px,5vw,68px);max-width:800px}.legal-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:34px}.legal-policy-grid a{display:block;padding:23px;border:1px solid rgba(240,207,160,.15);border-radius:19px;background:rgba(32,22,10,.64);transition:transform .22s ease,border-color .22s ease,background .22s ease}.legal-policy-grid a:hover{transform:translateY(-4px);border-color:rgba(238,205,154,.36);background:rgba(46,31,13,.78)}.legal-policy-grid span{display:block;font:700 17px/1.3 var(--au-disp,"Outfit",system-ui,sans-serif);margin-bottom:8px}.legal-policy-grid p{color:#989081;font-size:12px;line-height:1.6;margin-bottom:14px}.legal-policy-grid b{color:#ebc282;font-size:11px}.legal-back-top{position:fixed;right:22px;bottom:22px;width:48px;height:48px;border:1px solid rgba(241,213,171,.25);border-radius:15px;background:rgba(31,21,9,.85);color:#fff;z-index:85;opacity:0;visibility:hidden;transform:translateY(12px);transition:.22s ease;cursor:pointer;backdrop-filter:blur(15px)}.legal-back-top.is-visible{opacity:1;visibility:visible;transform:none}.reveal-legal{opacity:0;transform:translateY(22px);transition:opacity .72s cubic-bezier(.2,.7,.2,1),transform .72s cubic-bezier(.2,.7,.2,1)}.reveal-legal.is-visible{opacity:1;transform:none}@keyframes legalOrbit{to{transform:rotate(360deg)}}@keyframes legalOrbitReverse{to{transform:rotate(-360deg)}}@media(max-width:1050px){.legal-header .menu{display:block;margin-left:12px}.legal-header nav{display:flex;position:fixed;left:18px;right:18px;top:82px;padding:16px;flex-direction:column;gap:4px;margin:0;border:1px solid var(--line);border-radius:18px;background:rgba(18,12,5,.97);box-shadow:0 30px 80px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(-12px);transition:.22s ease}.legal-header.nav-open nav{opacity:1;visibility:visible;transform:none}.legal-header nav a{padding:13px 14px;border-radius:10px}.legal-header nav a:hover{background:rgba(255,255,255,.05)}.legal-header.nav-open .menu i:first-child{transform:translateY(4.5px) rotate(45deg)}.legal-header.nav-open .menu i:last-child{transform:translateY(-4.5px) rotate(-45deg)}.legal-shell{grid-template-columns:1fr;width:min(940px,calc(100% - 40px));gap:34px}.legal-toc{position:relative;top:auto}.legal-toc nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.legal-help-card{display:none}}@media(max-width:700px){.legal-header{padding:0 16px}.legal-header .header-actions .btn{padding:12px 14px;font-size:12px}.legal-header nav{top:74px}.legal-hero{min-height:auto;padding:82px 20px 72px}.legal-hero h1{font-size:clamp(52px,17vw,78px)}.legal-highlight-grid{grid-template-columns:1fr;margin-top:38px}.legal-shell{width:calc(100% - 32px);padding:58px 0 90px}.legal-toc{padding:18px}.legal-toc nav{grid-template-columns:1fr}.legal-section{grid-template-columns:1fr;gap:15px;padding:40px 0}.legal-section-number{position:relative;top:auto;width:46px;height:46px}.legal-callout{grid-template-columns:1fr;gap:10px;padding:21px}.legal-policy-grid{grid-template-columns:1fr}.legal-orbit-one{right:-430px}.legal-orbit-two{right:-210px}.legal-back-top{right:14px;bottom:14px}.footer-disclaimer{padding-left:20px;padding-right:20px}}@media(prefers-reduced-motion:reduce){.legal-orbit,.reveal-legal,.legal-policy-grid a,.legal-toc nav a,.legal-back-top{animation:none!important;transition:none!important}.reveal-legal{opacity:1;transform:none}}
/* `#legal-cosmos` was positioned here for a <canvas> that no template in
   this build has ever emitted. The painter that would have filled it lived
   in assets/js/legal.js, was byte-identical to the upstream release, and
   drew in a cool hue; it has been deleted, and this rule went with it. The
   legal routes take their atmosphere from the shared Aurora strata layer
   like every other surface. */
.legal-section-content code{padding:2px 7px;border:1px solid rgba(238,203,152,.16);border-radius:7px;background:rgba(190,132,50,.09);color:#f7e7d0;font:600 12px/1.5 var(--au-mono,"JetBrains Mono",ui-monospace,monospace);overflow-wrap:anywhere}


/* v2.8.1 — public challenge-rule matrix */
/* THE ONE COOL VALUE AURORA ALLOWS, AND THIS BLOCK WAS NOT USING IT.
   These three declarations arrived byte-identical from the upstream release
   and carried three values measuring hue 157.7, 158.3 and 157.7 — a
   teal-leaning mint. (Hues rather than literals, again, so this comment does
   not trip a warm-only sweep.) Aurora permits exactly one cool family, the
   up-green, and it is hue 148: --au-up #5BE49B and --good #22C55E both measure
   148.0. A separate teal seven to ten degrees off it is a second cool accent,
   which is the thing the system does not have room for.
   The alpha values are written as literal rgb() of --au-up rather than as a
   var(), because a var() cannot be given an alpha without color-mix() and this
   sheet has to keep working with no build step and no dependency on it. */
.rules-live-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:18px 0;padding:12px 14px;border:1px solid rgba(91,228,155,.28);border-radius:12px;background:rgba(91,228,155,.06)}
.rules-live-note i{width:9px;height:9px;border-radius:50%;background:var(--au-up,#5BE49B);box-shadow:0 0 18px var(--au-up,#5BE49B);animation:rulesPulse 1.8s ease-in-out infinite}.rules-live-note span{font-weight:800;color:#dfffee}.rules-live-note small{color:var(--muted)}
.rules-program-list{display:grid;gap:18px;margin-top:18px}.rules-program-card{border:1px solid rgba(225,155,74,.25);border-radius:17px;background:linear-gradient(145deg,rgba(38,25,10,.95),rgba(17,11,4,.94));overflow:hidden}
.rules-program-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.07)}.rules-program-head small{font-size:9px;letter-spacing:.18em;color:#efc69a;font-weight:800}.rules-program-head h3{margin:4px 0 3px;font-size:20px}.rules-program-head p{margin:0;color:var(--muted);font-size:13px}.rules-program-head>span{padding:6px 10px;border-radius:99px;background:rgba(225,155,74,.12);border:1px solid rgba(225,155,74,.28);font-size:10px;font-weight:800;white-space:nowrap}
.rules-program-card .legal-table-wrap{margin:0;border:0;border-radius:0}.rules-table{min-width:1120px}.rules-table th{white-space:nowrap}.rules-table td{vertical-align:top}.rules-perms{font-size:11px;line-height:1.7;white-space:nowrap}
@keyframes rulesPulse{50%{opacity:.4;transform:scale(.78)}}
@media(max-width:680px){.rules-program-head{padding:15px;flex-direction:column}.rules-program-head>span{align-self:flex-start}}

/* v3.3.0 — prominent Rocksby operator/payment identity */
.legal-entity-disclosure{
    position:relative;
    z-index:4;
    width:min(1400px,calc(100% - 48px));
    margin:46px auto 0;
    padding:30px;
    display:grid;
    grid-template-columns:minmax(280px,.9fr) minmax(420px,1.4fr);
    gap:24px 34px;
    border:1px solid rgba(235,195,131,.28);
    border-radius:25px;
    overflow:hidden;
    background:radial-gradient(circle at 0 0,rgba(225,156,74,.2),transparent 38%),linear-gradient(145deg,rgba(44,30,12,.94),rgba(17,11,5,.96));
    box-shadow:0 30px 90px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.04);
}
.legal-entity-disclosure:after{content:"";position:absolute;right:-90px;top:-110px;width:280px;height:280px;border:1px solid rgba(234,194,125,.12);border-radius:50%;box-shadow:0 0 90px rgba(226,169,79,.09);pointer-events:none}
.legal-entity-main{min-width:0}.legal-entity-kicker{display:block;margin-bottom:11px;color:#ecc78b;font:800 9px/1.3 var(--au-disp,"Outfit",system-ui,sans-serif);letter-spacing:.17em}.legal-entity-main h2{margin:0;color:#fff;font-size:clamp(25px,2.5vw,39px);line-height:1.08;letter-spacing:-.035em}.legal-entity-main p{margin:15px 0 0;color:#c2b8aa;font-size:13px;line-height:1.75}.legal-entity-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.legal-entity-facts>div{min-width:0;padding:15px 16px;border:1px solid rgba(240,208,160,.14);border-radius:14px;background:rgba(255,255,255,.026)}.legal-entity-facts small{display:block;margin-bottom:6px;color:#9d8e7b;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.legal-entity-facts strong{display:block;color:#fcf7ef;font-size:12px;line-height:1.55;overflow-wrap:anywhere}.legal-entity-facts .legal-entity-address{grid-column:1/-1}.legal-entity-note{grid-column:1/-1;display:grid;grid-template-columns:145px 1fr;gap:18px;padding-top:20px;border-top:1px solid rgba(242,217,177,.12)}.legal-entity-note span{color:#ecc688;font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.legal-entity-note p{margin:0;color:#a69e90;font-size:12px;line-height:1.65}.legal-body .footer-entity-disclosure{width:auto;margin-top:46px}
@media(max-width:960px){.legal-entity-disclosure{grid-template-columns:1fr}.legal-entity-note{grid-column:auto}.legal-entity-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.legal-entity-facts .legal-entity-address{grid-column:1/-1}}
@media(max-width:700px){.legal-entity-disclosure{width:calc(100% - 30px);margin-top:24px;padding:21px;border-radius:19px}.legal-entity-facts{grid-template-columns:1fr}.legal-entity-facts .legal-entity-address{grid-column:auto}.legal-entity-note{grid-template-columns:1fr;gap:7px}}

/* ===========================================================================
   INLINE <code> ON THE LEGAL DOCUMENTS
   ---------------------------------------------------------------------------
   The rule for this at the top of the file is scoped to .legal-section-content,
   a class no template has emitted since the legal pages were rebuilt onto
   .lg-shell / .lg-doc / .lg-sec / .legal-table. Twelve rules in this file are
   scoped that way and are dead; this is the one with a VISIBLE consequence.

   The result was that the fifteen cookie names in the /cookies-policy table
   (and one more on /certificates) fell through to the browser's generic
   `monospace` — the one place on the site not rendering in JetBrains Mono,
   which is the face Aurora specifies for every figure and identifier.

   Scoped to .lg-main so it reaches the rebuilt DOM, table cells included.
   =========================================================================== */
.lg-main code{padding:2px 7px;border:1px solid rgba(238,203,152,.16);border-radius:7px;
  background:rgba(190,132,50,.09);color:#f7e7d0;
  font:600 12px/1.5 var(--au-mono,"JetBrains Mono",ui-monospace,monospace);
  overflow-wrap:anywhere}
