/* ══════════════════════════════════════════════════════════════════════════════════════════════
   CandySweeps — theme.css                                            CSTHEME_REV 2026.10.07-4

   ⚠ BUMP CSTHEME_REV ON EVERY EDIT, and BUMP THE ?v= ON EVERY PAGE THAT LINKS IT.

   ★★ THE ?v= IS NOT OPTIONAL AND IS NOT A TIDINESS THING. (7 Oct 2026)
   The five pages that load this file ask for /assets/theme.css?v=N. Editing this file WITHOUT
   moving N means the browser and the CDN keep serving the copy they already have, so a correct
   upload produces no visible change — which then gets diagnosed for twenty minutes as a failed
   upload, a broken selector, or a cache that "should" have cleared.
   That is on record on WildSweeps: a replaced logo at an unchanged URL survived FOUR purges, all of
   which reported success, because the layer holding it had a ten-year TTL. No purge fixes an asset
   replaced in place. Only a new URL does.
   → Edited this file? Then ad-disclosure.php, contact-us.php, privacy-policy.php,
     terms-conditions.php and thank-you.php ALL need the new ?v= in the same upload.
   Currently: ?v=6

   ⚠ ?v=5 WAS SHIPPED WITHOUT MOVING THE NUMBER AND NOTHING CHANGED ON SCREEN. (7 Oct 2026)
   I edited this file, had it uploaded, and told Chris the six linking pages "don't need
   re-uploading" because ?v=5 was unchanged. That is the precise failure described six lines above,
   committed by the person who wrote the warning, about three hours later. The upload was fine; the
   browser and the CDN simply never asked for the new copy. Chris: "uploaded, not seeing any
   difference" — exactly the twenty-minute false diagnosis this note exists to prevent.
   ★ THE RULE IS NOT "BUMP IT WHEN THE CHANGE IS BIG". It is bump it EVERY time this file changes,
   including when the edit feels too small to matter — small edits are the ones you skip it on.

   ⚠ HEADER SAID "HoneySweeps — theme.css / HSTHEME_REV" until 7 Oct. This is CandySweeps' own copy
   and has been since the site was built; the name was carried over with the file. Harmless until
   somebody greps for HSTHEME_REV to find out which site a stylesheet belongs to and gets the wrong
   answer with total confidence.

   REPLACES the old dark stylesheet. Goes to /assets/theme.css.

   ── WHY ONE FILE FIXES ALL OF THEM ────────────────────────────────────────────────────────────
   The new homepage carries its own inline CSS, but privacy-policy.php, ad-disclosure.php,
   contact-us.php and thank-you.php all still <link> this file and were rendering on a near-black
   rgb(18,13,6) background. Homepage light and new, every other page dark and old.

   Rewritten rather than patched: every class below was read off those four files, not guessed —
   page-flex · site-head · site-logo · page · back-link · content-card · page-title · page-subtitle
   contact-detail · detail-label · detail-content · center-wrap · form-shell · ty-card · check-icon
   ty-heading · ty-message · btn-home · deco-icons · site-footer · wrap · flinks · age · disc · copy

   ⚠ ANY CLASS NOT IN THAT LIST IS NOT STYLED HERE. If a page appears unstyled after this goes up,
   it uses markup none of those four files do — send it to me rather than assuming the file is bad.

   ── ★★ THE PALETTE WAS HONEYSWEEPS', NOT CANDYSWEEPS'. (7 Oct 2026, #468) ─────────────────────
   The comment here read "THE PALETTE IS THE HOMEPAGE'S — kept as :root custom properties so the two
   cannot drift: if the homepage palette changes, these names change with it."

   ⚠ THAT IS THE EXACT OPPOSITE OF WHAT CUSTOM PROPERTIES DO ACROSS TWO FILES. Sharing a VARIABLE
   NAME is not sharing a VALUE. index.php declares its own :root and this file declares its own; the
   names matched and the numbers were free to diverge — which is precisely what happened the moment
   CandySweeps repainted the homepage pink and nobody opened a legal page. The comment promised a
   coupling that does not exist in CSS, and then stood there asserting it for weeks. A mechanism that
   is described as preventing drift, and does not, is worse than no mechanism: it stops people
   checking.

   Found only because Chris screenshotted the new cookie policy and the page was CREAM. Every legal
   page and the thank-you page were rendering in honey gold (#F2A20C), honey cream (#FFFBF0) and
   honey brown (#1B1205) — HoneySweeps' colours, on CandySweeps, since the site was built. The candy
   dots added minutes earlier were sitting on a honey-coloured page.

   Values below are now index.php's :root verbatim. The --gold-* and --cyan-* ramps have no homepage
   equivalent (the homepage only declares a flat --gold and --cyan) so they are rebuilt around the
   CandySweeps gold #FFC01E and cyan #29ABE2 rather than left on the honey ones.

   ★ THEY STILL CANNOT ENFORCE EACH OTHER. Two files, two declarations, no link. The only real
   protection is to CHANGE BOTH TOGETHER and to LOOK AT A LEGAL PAGE after any homepage theme change
   — the thing neither of us did. Said plainly here instead of the comforting version.
   ══════════════════════════════════════════════════════════════════════════════════════════════ */

:root{
  /* ⚠ MIRRORS index.php's :root. Change one, change the other, then open a legal page. */
  --gold:#FFC01E; --gold-lt:#FFD95E; --gold-hi:#FFF0B8; --gold-dk:#C9941A;
  --cyan:#29ABE2; --cyan-lt:#7FD3F2; --cyan-dk:#1B7FA8;
  --pink:#EE3A7D; --lime:#7DC832;
  --ink:#3A1B12; --ink-2:#7A5548; --line:#F6D9E4; --paper:#FFF8FB;
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --display:'Poppins','Inter',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}

*{box-sizing:border-box}

/* ★★ CANDY DOTS, NOT THE HONEYCOMB LATTICE. (7 Oct 2026, #468)
   The comment here read "The honeycomb, identical to the homepage" — and it was HONEST when it was
   written, because the homepage DID carry the comb then. The homepage moved to candy dots during the
   CandySweeps build; this file did not, and the comment went on asserting a match that had stopped
   being true. Result: a honeycomb lattice behind every legal page and the thank-you page, in
   HoneySweeps' gold, on a pink candy site. Chris spotted it in a screenshot of the new cookie policy.

   ⚠ THIS IS THE THIRD PLACE THE COMB HAD TO BE REMOVED, AND THE LAST ONE FOUND.
     1. the homepage SVG pattern  — done when the site was built
     2. six clip-path shapes      — done earlier today
     3. this background           — missed by both passes
   The first two were found by searching for a SHAPE (the polygon). This one is a lattice made of
   three crossed repeating-linear-gradients, with no polygon, no hexagon, and no word "comb" in the
   CSS itself. A grep for the motif could never have found it; only looking at the page could.
   ★ A VISUAL MOTIF CANNOT BE FULLY REMOVED BY GREP. Look at every page type after a theme change —
   the legal pages load a different stylesheet from the homepage and nobody had opened one since.

   ⚠ A COMMENT THAT DESCRIBES ANOTHER FILE GOES STALE SILENTLY. "identical to the homepage" was a
   claim about a file this one cannot see. Said once, true once, then quietly wrong for weeks.

   Same technique as before — gradients, so there is still no image request — and the same four
   palette colours as the homepage's #dotbg, on the same 84px grid at four offsets so the dots
   scatter rather than forming visible rows. Fixed, so it covers the whole document however long. */
body{
  margin:0;
  color:var(--ink);
  font-family:var(--font);
  font-size:16px;
  line-height:1.65;
  background-color:var(--paper);
  /* ⚠ SECOND ATTEMPT. The first one was candy dots I INVENTED — an 84px grid of uniform 2.2px dots
     with a #FFE9F2 wash — rather than the homepage's. Chris put the two pages side by side and they
     were obviously different: his were bigger, denser, more saturated. I had replaced "looks like
     HoneySweeps" with "looks like neither", which is not an improvement, and I would not have caught
     it because I never compared the two pages myself.
     ★ MATCHING A DESIGN MEANS READING ITS NUMBERS, NOT REMEMBERING ITS IDEA. "Candy dots" is the
     idea; 60×60, r=5/3.5/4/3, those four positions and those four opacities are the design.
     Values below are index.php's #dotbg pattern and its body wash, copied exactly:
         60×60 tile · (12,12) r5 pink .13 · (42,24) r3.5 gold .22
                    · (24,44) r4 cyan .14 · (52,54) r3 lime .16
         wash: radial-gradient(900px 420px at 50% 0%, #FFE3EF → transparent 70%)
     Done as CSS gradients rather than the homepage's inline <svg class="combbg"> because that would
     mean adding markup to six pages; the geometry is identical either way. */
  background-image:
    radial-gradient(circle at 12px 12px, rgba(238,58,125,.13) 5px,   transparent 5.5px),
    radial-gradient(circle at 42px 24px, rgba(255,192,30,.22) 3.5px, transparent 4px),
    radial-gradient(circle at 24px 44px, rgba(41,171,226,.14) 4px,   transparent 4.5px),
    radial-gradient(circle at 52px 54px, rgba(125,200,50,.16) 3px,   transparent 3.5px),
    radial-gradient(900px 420px at 50% 0%, #FFE3EF 0%, rgba(255,227,239,0) 70%);
  background-size:60px 60px, 60px 60px, 60px 60px, 60px 60px, auto;
  background-attachment:fixed;
}
img{max-width:100%;display:block}
a{color:var(--cyan-dk)}

/* ── layout ── */
.page-flex,.center-wrap{min-height:100vh;display:flex;flex-direction:column}
.page,.form-shell{flex:1;width:100%;max-width:820px;margin:0 auto;padding:0 18px 40px}
.wrap{max-width:820px;margin:0 auto;padding:0 18px}

/* ── header ── */
.site-head{padding:22px 0 8px;text-align:center}
.site-logo{height:104px;width:auto;margin:0 auto;display:block}

.back-link{display:inline-block;margin:18px 0 14px;font-size:13.5px;font-weight:600;
           color:var(--cyan-dk);text-decoration:none}
.back-link:hover{text-decoration:underline}

/* ── the content card ── */
.content-card,.ty-card{background:#fff;border:1px solid var(--line);border-radius:14px;
                       padding:28px 26px;box-shadow:0 2px 0 rgba(27,18,5,.05)}
.page-title,.ty-heading{margin:0 0 6px;font-family:var(--display);font-weight:700;
                        font-size:30px;line-height:1.1;letter-spacing:-1.1px;color:var(--ink)}
.page-subtitle,.ty-message{margin:0 0 20px;font-size:15px;color:var(--ink-2)}

.content-card h2{margin:26px 0 8px;font-family:var(--display);font-weight:700;font-size:20px;
                 letter-spacing:-.6px}
.content-card h3{margin:20px 0 6px;font-family:var(--display);font-weight:600;font-size:16.5px;
                 letter-spacing:-.3px}
.content-card p{margin:0 0 12px}
.content-card ul,.content-card ol{margin:0 0 14px;padding-left:22px}
.content-card li{margin:0 0 6px}
.content-card a{font-weight:600}
.content-card strong,.content-card b{color:var(--ink)}
.content-card hr{border:0;border-top:1px solid var(--line);margin:22px 0}
.content-card table{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:14.5px}
.content-card th,.content-card td{border:1px solid var(--line);padding:9px 11px;text-align:left;
                                  vertical-align:top}
.content-card th{background:#FFFBF0;font-weight:700}

/* ── contact-us rows ── */
.contact-detail{display:flex;gap:13px;align-items:flex-start;padding:15px 0;
                border-top:1px solid var(--line)}
.contact-detail:first-of-type{border-top:0}
.contact-detail i{flex:0 0 auto;width:36px;height:36px;display:grid;place-items:center;
                  border-radius:10px;color:#3A2400;font-size:15px;
                  background:linear-gradient(180deg,var(--gold-lt),var(--gold))}
.detail-label{font-size:11px;font-weight:600;color:#A08A66}
.detail-content{font-size:15.5px;font-weight:600;color:var(--ink);word-break:break-word}

/* ── thank-you ── */
.ty-card{text-align:center;margin-top:24px}
/* ★ GUMBALL, not a hexagon. (7 Oct 2026, #468)
   The comment here used to read "A hexagon, the same motif as the homepage's rank badge — not
   another circle." That was true and is the reason this had to change with the rest: the hexagon
   WAS HoneySweeps' honeycomb, carried over, and the homepage rank badge it was matching has now
   become a gumball. Leaving this one would have made the comment accurate and the page wrong.
   ⚠ THE MOTIF IS THE THING TO KEEP CONSISTENT, NOT THE SHAPE. Anything that says "same as the rank
   badge" has to move whenever the rank badge moves — grep the whole candysweeps/ folder, not just
   index.php. These two in theme.css are exactly what a grep of index.php alone would have missed,
   and the legal pages and thank-you page are the ones that load this file. */
.check-icon{width:68px;height:68px;margin:0 auto 16px;display:grid;place-items:center;
            font-size:26px;color:#3A2400;border-radius:50%;
            background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.85) 0 14%,rgba(255,255,255,0) 15%),
                       linear-gradient(180deg,var(--gold-lt),var(--gold));
            box-shadow:inset 0 -3px 6px rgba(169,101,0,.22)}
.btn-home{display:inline-block;margin-top:8px;padding:12px 32px;border-radius:999px;
          font-family:var(--display);font-weight:700;font-size:15.5px;letter-spacing:-.1px;
          text-decoration:none;color:#3A2400;border:1px solid var(--gold-dk);
          background:linear-gradient(180deg,var(--gold-hi) 0%,var(--gold-lt) 42%,var(--gold) 43%,#D98A05 100%);
          box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 3px 0 var(--gold-dk),0 8px 18px rgba(169,101,0,.3);
          transition:transform .12s ease,box-shadow .12s ease}
.btn-home:hover{transform:translateY(-1px)}
.btn-home:active{transform:translateY(2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 1px 0 var(--gold-dk)}
.btn-home i{margin-right:7px}

/* The floating dice/star/gem/coin icons were the old dark theme's decoration and read as clutter
   on a light page. Hidden rather than deleted — the markup is in thank-you.php and removing it
   there means another upload for no benefit. */
.deco-icons{display:none}

/* ── footer, matching the homepage's ── */
.site-footer{margin-top:26px;padding:22px 0 34px;border-top:1px solid var(--line);
             text-align:center;font-size:11.5px;color:#8E7C60;line-height:1.65}
.flinks{margin-bottom:10px}
.flinks a{color:var(--cyan-dk);text-decoration:none;margin:0 8px;font-weight:600}
.flinks a:hover{text-decoration:underline}
/* gumball — the legal pages' 21+ badge. Must match index.php's .ft .age exactly; the two files draw
   the same badge on different pages and a visitor moving between them would see it change shape. */
.site-footer .age{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;
                  background:var(--ink);color:var(--gold-lt);font-family:var(--display);
                  font-weight:700;font-size:12px;margin-bottom:10px}
.site-footer .disc{max-width:620px;margin:0 auto}
.site-footer .copy{margin-top:10px}

@media(max-width:620px){
  .site-logo{height:82px}
  .page-title,.ty-heading{font-size:25px}
  .content-card,.ty-card{padding:22px 18px}
}
