
.pw2 {
  --primary: #d71c2e;
  --secondary: #940513;
  --red: #d71c2e;
  --red-hot: #e11a2c;
  --red-deep: #940513;
  --red-ink: #5e0710;
  --yellow: #ffdd00;
  --money: #4c7a43;
  --money-deep: #2f5a2a;
  --money-paper: #dbeac6;
  --ink: #1d1513;
  --ink-2: #4a3f3b;
  --ink-3: #85776f;
  --paper: #fff9f0;
  --paper-2: #f6ecdd;
  --line: #e9dccb;
  --radius-lg: 22px;
  --shadow-sm: 0 1px 2px rgba(60,20,10,.08), 0 2px 6px rgba(60,20,10,.06);
  --shadow: 0 2px 4px rgba(60,20,10,.06), 0 12px 32px -8px rgba(60,20,10,.18);
  --shadow-lg: 0 4px 10px rgba(60,20,10,.08), 0 30px 60px -20px rgba(60,20,10,.35);
  --hero: radial-gradient(120% 80% at 30% 18%, #ef2b3d 0%, #d71c2e 38%, #b3101f 78%, #940513 100%);
  --display: "Berthold City", Rockwell, Georgia, serif;
  --text: "dm-sans", "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "DM Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --ease-out: cubic-bezier(.2, .8, .2, 1);
  --spring: cubic-bezier(.34, 1.56, .64, 1);

  position: relative; font-family: var(--text); font-size: 16px; line-height: 1.55; color: var(--ink);
  -webkit-font-smoothing: antialiased; text-align: left;
}

/* ---------- page shell (master page chrome) ---------- */
body:has(.pw2) { padding-top: 0; background: #fff9f0; color: #1d1513; }
body:has(.pw2) .topNavOuter { display: none; }   /* replaced by .utility / .appbar */
body:has(.pw2) a.skip { display: none; }

.pw2 *, .pw2 *::before, .pw2 *::after { box-sizing: border-box; }
.pw2 img { display: block; max-width: 100%; height: auto; }
.pw2 a { color: var(--primary); text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.pw2 a:hover { color: var(--secondary); }
.pw2 :focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; border-radius: 6px; }
.pw2 sup { font-size: .55em; line-height: 0; }
.pw2 hr { display: none; }

/* site utility classes (same names as default.css) */
.pw2 .bold { font-family: var(--display); font-weight: 700; }
.pw2 .uppercase { text-transform: uppercase; }
.pw2 .alignCenter { text-align: inherit; }
.pw2 .bal { text-wrap: balance; }
.pw2 .space0 { height: .5em; }
.pw2 .space1 { height: 1em; }
.pw2 .eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }


/* ---------- buttons: .buttonBig / .buttonSmall ---------- */
.pw2 .buttonBig, .pw2 .buttonSmall {
  display: inline-block; padding: 15px 25px; min-width: 9em; margin: 20px 5px;
  font: 600 16px/1.2 var(--text); text-align: center; text-decoration: none !important;
  color: #fff !important; background-color: var(--primary); border: 2px solid var(--primary); border-radius: 12px;
  cursor: pointer; -webkit-appearance: none; appearance: none;
  transition: background-color .15s, border-color .15s, transform .15s;
}
.pw2 .buttonBig:hover, .pw2 .buttonSmall:hover { color: #fff; background-color: var(--secondary); border-color: var(--secondary); }
.pw2 .buttonBig:active { transform: translateY(1px); }
.pw2 .buttonSmall { font-size: 14px; margin: 4px; }

/* ---------- utility bar (login + register) ---------- */
.pw2 .utility { position: relative; z-index: 20; background: var(--ink); color: rgba(255,255,255,.78); font-size: 13px; }
.pw2 .utility__inner { max-width: 1280px; margin: 0 auto; padding: 0 24px; height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pw2 .utility a { color: inherit; text-decoration: none; font-weight: 500; }
.pw2 .utility a:hover { color: #fff; }
.pw2 .utility nav { display: flex; gap: 22px; }
.pw2 .utility__note b { color: var(--yellow); font-weight: 700; }

/* ---------- app bar (dashboard + thank you) ---------- */
.pw2 .appbar { position: sticky; top: 0; z-index: 30; background: var(--red); color: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.08), 0 8px 24px -12px rgba(80,0,10,.5); }
.pw2 .appbar__inner { height: 72px; display: flex; align-items: center; gap: 28px; }
.pw2 .appbar__logo { position: relative; width: 92px; height: 72px; flex: none; }
.pw2 .appbar__logo img { position: absolute; top: 8px; left: 0; width: 92px; filter: drop-shadow(0 8px 12px rgba(60,0,0,.4)); transform: rotate(-3deg); transition: transform .35s var(--spring); }
.pw2 .appbar__logo:hover img { transform: rotate(0) scale(1.04); }
.pw2 .appbar nav { display: flex; gap: 4px; margin-left: 12px; }
.pw2 .appbar nav a { color: rgba(255,255,255,.85); text-decoration: none; font-weight: 700; font-size: 14.5px; padding: 9px 14px; border-radius: 999px; transition: background .15s, color .15s; }
.pw2 .appbar nav a:hover { background: rgba(0,0,0,.14); color: #fff; }
.pw2 .user { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.pw2 .user__chip { display: flex; align-items: center; gap: 10px; padding: 5px 14px 5px 5px; border-radius: 999px; background: rgba(0,0,0,.16); font-size: 14px; font-weight: 700; }
.pw2 .user__chip .av { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--yellow); color: var(--red-ink); font-family: var(--display); font-size: 14px; }
.pw2 .user a.out { color: rgba(255,255,255,.8); font-size: 14px; font-weight: 600; text-decoration: none; }
.pw2 .user a.out:hover { color: #fff; }

/* ---------- peeled-corner sticker card ---------- */
.pw2 .sticker { --corner: 46px; --behind: var(--paper); position: relative; background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
/* .pw2 .sticker::after {
  content: ""; position: absolute; right: 0; bottom: 0; width: var(--corner); height: var(--corner); pointer-events: none;
  border-bottom-right-radius: var(--radius-lg);
  background: linear-gradient(to top left, var(--behind) 0 50%, transparent 50%), linear-gradient(to top left, transparent 50%, #d9cfc2 50%, #f7f2ea 72%, #fff 100%);
  filter: drop-shadow(-3px -3px 4px rgba(60,20,10,.16));
  transition: width .35s var(--spring), height .35s var(--spring);
}
.pw2 .sticker:hover::after { --corner: 58px; } */ 

/* ---------- red brand hero (.globalHeader) ---------- */
.pw2 .globalHeader { position: relative; overflow: clip; isolation: isolate; margin: 0; padding: 0; background: var(--hero); color: #fff; font-size: 16px; text-align: left; }
.pw2 .burst { position: absolute; inset: -40%; pointer-events: none; z-index: -1;
  background: repeating-conic-gradient(from 0deg at 50% 50%, rgba(255,255,255,.055) 0deg 7deg, transparent 7deg 15deg);
  -webkit-mask-image: radial-gradient(circle, #000 0%, transparent 62%); mask-image: radial-gradient(circle, #000 0%, transparent 62%);
  animation: pw2Spin 160s linear infinite; }
@keyframes pw2Spin { to { transform: rotate(360deg); } }
.pw2 .globalHeader .logo { width: auto; margin: 0; filter: drop-shadow(0 18px 28px rgba(60,0,0,.4)); transform: rotate(-3deg); animation: pw2LogoIn .9s var(--spring) both; }
@keyframes pw2LogoIn { from { opacity: 0; transform: rotate(-12deg) scale(.85) translateY(20px); } }
.pw2 .globalHeader .eyebrow { color: var(--yellow); }
.pw2 .lede { margin: 14px 0 0; font-family: var(--display); font-size: clamp(22px, 2.1vw, 30px); line-height: 1.18; text-transform: uppercase; letter-spacing: .01em; text-wrap: balance; }
.pw2 .lede em { font-style: normal; color: var(--yellow); }
.pw2 .subLede { margin: 14px 0 0; font-size: 17px; line-height: 1.5; color: rgba(255,255,255,.86); max-width: 44ch; }
.pw2 .subLede b { color: #fff; }
.pw2 .float-icon { position: absolute; filter: drop-shadow(0 14px 18px rgba(60,0,0,.35)); animation: pw2Bob 7s ease-in-out infinite; pointer-events: none; }
@keyframes pw2Bob { 0%, 100% { transform: translateY(0) rotate(var(--r, 0deg)); } 50% { transform: translateY(-12px) rotate(calc(var(--r, 0deg) + 3deg)); } }
.pw2 .fiveMil { display: inline-grid; gap: 2px; margin-top: 18px; padding: 10px 18px 11px; border-radius: 14px; background: var(--yellow); color: var(--red-ink); /*box-shadow: 0 4px 0 #c89a00, 0 14px 24px -10px rgba(60,0,0,.5);*/ transform: rotate(-2deg); text-align: left; }
.pw2 .fiveMil b { font-family: var(--display); font-size: 26px; line-height: 1; text-transform: uppercase; }
.pw2 .fiveMil span { font-family: var(--display); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; }
.pw2 .steps { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; max-width: 720px; }
.pw2 .steps li { padding: 16px 16px 18px; background: rgba(60,0,8,.28); border: 1px solid rgba(255,255,255,.14); border-radius: 16px; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); font-size: 14px; line-height: 1.4; color: rgba(255,255,255,.86); }
.pw2 .steps .n { display: grid; place-items: center; width: 34px; height: 34px; margin-bottom: 10px; border-radius: 50%; background: var(--yellow); color: var(--red-ink); font-family: var(--display); font-size: 18px; /*box-shadow: 0 3px 0 #c89a00;*/ }
.pw2 .steps b { display: block; color: #fff; font-family: var(--display); text-transform: uppercase; font-size: 17px; letter-spacing: .02em; margin-bottom: 2px; }

/* ---------- split layout (login + register) ---------- */
.pw2 .split { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); min-height: calc(100vh - 40px); }
.pw2 .split > .globalHeader > .heroSticky { position: sticky; top: 0; height: 100vh; min-height: 660px; display: flex; flex-direction: column; padding: 48px 56px 0; }
.pw2 .heroTop { position: relative; z-index: 2; display: grid; grid-template-columns: auto 1fr; gap: 40px; align-items: center; max-width: 720px; }
.pw2 .heroTop .logo { width: clamp(170px, 16vw, 240px); }
.pw2 .heroPrizes { position: relative; z-index: 1; flex: 1 1 auto; min-height: 200px; margin: 20px -24px 0; }
.pw2 .heroPrizes img { position: absolute; inset: 0 0 -4%; width: 100%; height: 104%; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 30px 40px rgba(50,0,5,.5)); }
.pw2 .split .fi-1 { width: 112px; top: 31%; right: -26px; --r: -8deg; z-index: 3; }
.pw2 .formCol { position: relative; isolation: isolate; padding: 56px clamp(24px, 4.5vw, 72px) 72px; display: flex; flex-direction: column; justify-content: center; }
.pw2 .formCol::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(-45deg, transparent 0 22px, rgba(215,28,46,.025) 22px 23px); }

/* card header (added HTML) */
.pw2 .cardHead { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 26px; }
.pw2 .cardHead .eyebrow { color: var(--primary); }
.pw2 .cardHead .cardTitle { margin: 10px 0 0; font-family: var(--display); font-weight: 700; font-size: clamp(36px, 3.6vw, 48px); line-height: .95; text-transform: uppercase; color: var(--ink); }
.pw2 .cardHead p { margin: 10px 0 0; color: var(--ink-2); max-width: 40ch; }
.pw2 .cardBadge { flex: none; width: 92px; transform: rotate(8deg); margin: -8px -6px 0 0; filter: drop-shadow(0 8px 12px rgba(60,20,10,.25)); }

/* ---------- fields: .frmfld floating labels (labelFocused comes from fb_and_utils.js) ---------- */
.pw2 .frmfld { position: relative; display: block; padding-top: 0; text-align: left; }
.pw2 .frmfld br, .pw2 .dob br { display: none; }
.pw2 select#ctl00_ContentPlaceHolder1_FormView1_ddlState, .pw2 .frmfld input[type=text], .pw2 .frmfld input[type=email], .pw2 .frmfld input[type=password], .pw2 .frmfld input[type=tel], .pw2 .frmfld input[type=number] {
  width: 100% !important; height: 58px; padding: 22px 16px 6px; margin: 0;
  font: 500 16px/1 var(--text); color: var(--ink); background: #fff;
  border: 1.5px solid var(--line) !important; border-radius: 12px; outline: 0; box-shadow: none;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.pw2 .frmfld input:hover { border-color: #d6c6b1 !important; background: #fffcf7; }
.pw2 .frmfld input:focus { border-color: var(--primary) !important; box-shadow: 0 0 0 4px rgba(215,28,46,.14) !important; }
.pw2 .frmfld label { position: absolute; left: 17px; top: 0; height: auto; margin: 0; padding: 19px 0 0; font-size: 15px; font-weight: 500; line-height: 1.2; color: var(--ink-3); pointer-events: none; transition: padding .15s, font-size .15s, color .15s; }
.pw2 .frmfld label.labelFocused { left: 17px; padding-top: 9px; font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--primary) !important; }
.pw2 .frmfld input.errorHighlight, .pw2 select.errorHighlight { border-color: var(--primary) !important; background: #fff6f6; }
.pw2 .requiredField { color: var(--primary); font-weight: 700; }
.pw2 .notRequiredField { display: none; }

/* selects: state (styled by ID in default.css, hence !important) + DOB */
.pw2 select, .pw2 select[id$="_ddlState"], .pw2 .dobmm, .pw2 .dobdd, .pw2 .dobyy {
  width: 100% !important; height: 58px !important; padding: 0 40px 0 16px !important; margin: 0;
  font: 500 16px/1 var(--text) !important; color: var(--ink); cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%231d1513' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center !important;
  border: 1.5px solid var(--line) !important; border-radius: 12px; appearance: none; -webkit-appearance: none; outline: 0; box-shadow: none;
}
.pw2 select:focus { border-color: var(--primary) !important; box-shadow: 0 0 0 4px rgba(215,28,46,.14) !important; }
.pw2 .dob { position: relative; display: grid; grid-template-columns: 1fr 1fr 1.25fr; height: 58px; padding: 22px 4px 0; background: #fff; border: 1.5px solid var(--line); border-radius: 12px; transition: border-color .15s, box-shadow .15s; }
.pw2 .dob:focus-within { border-color: var(--primary); box-shadow: 0 0 0 4px rgba(215,28,46,.14); }
.pw2 .dob label { position: absolute; top: 9px; left: 17px; height: auto; padding: 0 !important; font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--primary); line-height: 1; }
.pw2 .dob select { height: 32px !important; padding: 0 22px 0 12px !important; border: 0 !important; border-radius: 0; background-color: transparent !important; background-position: right 8px center !important; box-shadow: none !important; }
.pw2 .dob select + select { border-left: 1px solid var(--line) !important; }
.pw2 .dob select.errorHighlight { color: var(--primary); }
.pw2 .dob input[type=text] { display: none; }   /* hidden DOB textbox the page fills from the selects */

/* ---------- AjaxControlToolkit validator callouts ---------- */
.pw2 .ajax__validatorcallout_popup_table { font: 500 13px/1.35 var(--text); filter: drop-shadow(0 8px 16px rgba(60,20,10,.2)); }

/* ---------- ValidationSummary (register) ---------- */
.pw2 .errorBox.validationSummary { width: 100% !important; margin: 0 0 22px; padding: 14px 16px; border-radius: 14px; background: #fff1f2; border: 1.5px solid #f6c2c7; color: var(--red-deep); font-size: 14px; text-align: left; box-shadow: none; animation: pw2Shake .4s var(--ease-out); }
.pw2 .errorBox .errorBG { display: none; }
.pw2 .errorBox .errorHeader { display: flex; justify-content: space-between; gap: 12px; }
.pw2 .errorBox a, .pw2 .errorBox .errorIcon { color: var(--red-deep); }
.pw2 .errorBox ul { margin: 8px 0 0; padding-left: 1.2em; }
@keyframes pw2Shake { 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }

/* ---------- black "peel window" code entry (.enterCode) ---------- */
.pw2 .enterCode {
  position: relative; width: 100%; max-width: none; margin: 30px 0 0; padding: 26px; border: 0; border-radius: 24px;
  color: rgba(255,255,255,.75); font-size: 14px; line-height: 1.45; text-align: left;
  background: linear-gradient(160deg, #2a2120 0%, #140e0d 100%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 30px 60px -20px rgba(40,0,5,.7);
}
.pw2 .enterCode::before { content: "PEEL & WIN CODE"; position: absolute; top: -13px; left: 24px; padding: 5px 12px 4px; border-radius: 7px; background: var(--yellow); color: var(--red-ink); font-family: var(--display); font-size: 13px; letter-spacing: .06em; transform: rotate(-2deg); /*box-shadow: 0 3px 0 #c89a00;*/ }
.pw2 .enterCode .frmfld input[type=text] { height: 72px; padding: 30px 64px 6px 20px; border: 0 !important; border-radius: 16px; font: 500 26px/1 var(--mono); letter-spacing: .22em; text-transform: uppercase; }
.pw2 .enterCode .frmfld input:focus { box-shadow: 0 0 0 4px rgba(255,221,0,.55) !important; }
.pw2 .enterCode .frmfld label { left: 21px; padding-top: 26px; font-size: 16px; }
.pw2 .enterCode .frmfld label.labelFocused { padding-top: 11px; }
.pw2 .codeCount { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: 13px; font-weight: 700; color: var(--ink-3); font-variant-numeric: tabular-nums; pointer-events: none; }
.pw2 .codeCount.ok { color: var(--money); }
.pw2 .enterCode .buttonBig { margin: 0; min-height: 72px; }
.pw2 .enterCode a { color: #fff; font-weight: 700; }
/* validator message inside the code box (revkeywordTextBox etc.) */
.pw2 .enterCode span[id$="_revkeywordTextBox"] { margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: rgba(255,70,80,.14); border: 1px solid rgba(255,120,125,.35); color: #ffd5d8 !important; font-size: 14px; line-height: 1.45; }

/* ---------- popups: .gameOverlay > .gamePopup ---------- */
.pw2 .gameOverlay { position: fixed; inset: 0; z-index: 80; display: flex; align-items: center; justify-content: center; padding: 20px; color: var(--ink); background: rgba(30,6,8,.62); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); animation: pw2FadeIn .25s ease-out; }
@keyframes pw2FadeIn { from { opacity: 0; } }
.pw2 .gamePopup { --behind: transparent; position: relative; width: min(460px, 100%); max-height: calc(100vh - 40px); overflow: visible; padding: 44px 36px 32px; text-align: center; color: var(--ink-2); font-size: 16px; background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); animation: pw2PopIn .45s var(--spring) both; }
.pw2 .gamePopup::after { display: none; }
@keyframes pw2PopIn { from { opacity: 0; transform: translateY(24px) scale(.94); } }
.pw2 .gameOverlay i.closePopup { position: absolute; top: 14px; right: 16px; font-size: 26px; color: var(--ink-3); opacity: 1; cursor: pointer; }
.pw2 .gameOverlay i.closePopup:hover { color: var(--ink); }
.pw2 .popupArt { display: grid; place-items: center; width: 190px; height: 150px; margin: -104px auto 10px; }
.pw2 .popupArt img { width: auto; max-width: 190px; max-height: 150px; filter: drop-shadow(0 18px 22px rgba(80,10,10,.35)); animation: pw2StickOn .9s .1s var(--spring) both; --r: -6deg; }
.pw2 .popupArt .sym { width: 110px; height: 110px; border-radius: 50%; display: grid; place-items: center; background: var(--paper-2); border: 6px solid #fff; box-shadow: var(--shadow); color: var(--primary); font-size: 44px; }
.pw2 .popupKicker { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--primary); }
.pw2 .gamePopup .med.bold.uppercase { font-size: 40px; line-height: 1; color: var(--ink); margin: 8px 0 12px; text-wrap: balance; }
.pw2 .gamePopup .bold.uppercase.large { display: block; margin-top: 12px; font-size: 40px; line-height: 1; color: var(--money); }
.pw2 .popupMini { display: flex; justify-content: center; gap: 8px; margin-top: 18px; }
.pw2 .popupMini:empty { display: none; }
.pw2 .popupMini img { width: 44px; height: 44px; object-fit: contain; filter: grayscale(1) opacity(.28); }
.pw2 .popupMini img.on { filter: none; }
.pw2 .gamePopup .buttonBig { display: block; width: 100%; margin: 24px 0 0; }
.pw2 .gamePopup.win { background: linear-gradient(180deg, #fff 0%, #fff 55%, #f0f7e8 100%); }
@keyframes pw2StickOn { 0% { transform: translateY(-30px) rotate(-30deg) scale(1.4); opacity: 0; } 60% { transform: translateY(0) rotate(calc(var(--r, 0deg) + 6deg)) scale(.95); opacity: 1; } 100% { transform: rotate(var(--r, 0deg)); } }
.pw2Confetti { position: fixed; inset: 0; pointer-events: none; z-index: 90; overflow: hidden; }
.pw2Confetti i { position: absolute; top: -20px; width: 10px; height: 16px; border-radius: 2px; animation: pw2Fall linear forwards; }
@keyframes pw2Fall { to { transform: translate3d(var(--dx), 110vh, 0) rotate(var(--rot)); } }

/* ---------- section scaffolding ---------- */
.pw2 .wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.pw2 .section { padding: 88px 24px 0; }
.pw2 .sectionHead { margin-bottom: 32px; }
.pw2 .sectionHead .eyebrow { color: var(--primary); }
.pw2 .sectionHead h2 { margin: 10px 0 0; font-family: var(--display); font-size: clamp(34px, 3.6vw, 52px); line-height: .95; text-transform: uppercase; color: var(--ink); }
.pw2 .sectionHead h2 span { color: var(--primary); }
.pw2 .sectionHead p { margin: 10px 0 0; color: var(--ink-2); max-width: 56ch; }

/* icon tiles (register "collect all 4") */
.pw2 .iconTiles { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.pw2 .iconTiles li { display: grid; gap: 10px; justify-items: center; text-align: center; }
.pw2 .iconTiles .tile { position: relative; width: 100%; aspect-ratio: 1; border-radius: 20px; background: var(--paper); border: 1px solid var(--line); transition: transform .35s var(--spring), background .2s; }
.pw2 .iconTiles li:nth-child(odd) .tile { transform: rotate(-2deg); }
.pw2 .iconTiles li:nth-child(even) .tile { transform: rotate(2deg); }
.pw2 .iconTiles .tile:hover { transform: rotate(0) scale(1.05); background: #fff3e6; }
.pw2 .iconTiles img { position: absolute; inset: 13%; width: 74%; height: 74%; object-fit: contain; filter: drop-shadow(0 6px 8px rgba(60,20,10,.2)); }
.pw2 .iconTiles b { font-size: 14px; color: var(--ink); line-height: 1.2; }
.pw2 .iconTiles small { display: block; font-size: 12px; color: var(--ink-3); line-height: 1.35; margin-top: -4px; }

/* prize lineup band */
.pw2 .prizeBand { position: relative; overflow: clip; isolation: isolate; margin-top: 96px; padding: 80px 0 88px; background: var(--hero); color: #fff; }
.pw2 .prizeBand .sectionHead { text-align: center; }
.pw2 .prizeBand .sectionHead .eyebrow { color: var(--yellow); }
.pw2 .prizeBand .sectionHead h2 { color: #fff; }
.pw2 .prizeBand .sectionHead h2 span { color: var(--yellow); }
.pw2 .prizeGrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.pw2 .prize { position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 300px; padding: 20px; border-radius: 20px; background: radial-gradient(120% 90% at 50% 20%, #3a1a1a 0%, #1f1312 70%); border: 1px solid rgba(255,255,255,.08); transition: transform .35s var(--spring), border-color .2s; }
.pw2 .prize:hover { transform: translateY(-4px); border-color: rgba(255,221,0,.35); }
.pw2 .prize .art { flex: 1; display: grid; place-items: center; min-height: 150px; }
.pw2 .prize .art img { max-height: 180px; width: auto; object-fit: contain; filter: drop-shadow(0 18px 20px rgba(0,0,0,.5)); transition: transform .5s var(--spring); }
.pw2 .prize:hover .art img { transform: scale(1.05) rotate(-2deg); }
.pw2 .prize h3 { margin: 12px 0 0; font-family: var(--display); font-size: 20px; line-height: 1.05; text-transform: uppercase; }
.pw2 .prize p { margin: 6px 0 0; font-size: 13.5px; line-height: 1.45; color: rgba(255,255,255,.68); }
.pw2 .prize--wide { grid-column: span 2; }
.pw2 .prize--wide .art img { max-height: 220px; }
.pw2 .prize--trips { grid-column: 1 / -1; min-height: 0; overflow: visible; }
.pw2 .prize--trips h3 { margin-top: 0; font-size: 30px; }
.pw2 .prize--trips > p { font-style: italic; font-size: 15px; }
.pw2 .prize--trips .plane { position: absolute; top: 50%; right: -40px; width: 52%; transform: translateY(-50%); filter: drop-shadow(0 12px 16px rgba(0,0,0,.5)); }
.pw2 .tripList { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; max-width: 640px; margin-top: 22px; }
.pw2 .tripList div { font-size: 12px; line-height: 1.35; color: rgba(255,255,255,.65); }
.pw2 .tripList img { height: 70px; width: auto; margin-bottom: 10px; }
.pw2 .tripList b { display: block; font-family: var(--display); font-size: 14px; color: #fff; text-transform: uppercase; }

/* instant win strip */
.pw2 .instantWrap { padding-top: 96px; }
.pw2 .instant { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 40px; align-items: center; }
.pw2 .instantArt { position: relative; }
.pw2 .instantArt .combo { width: 100%; filter: drop-shadow(0 30px 30px rgba(60,20,10,.25)); }
.pw2 .instantArt .sticker-iw { position: absolute; width: 38%; top: -6%; left: -2%; filter: drop-shadow(0 14px 18px rgba(60,20,10,.35)); animation: pw2Bob 7s ease-in-out infinite; --r: -8deg; }
.pw2 .merch { list-style: none; margin: 26px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.pw2 .merch li { display: grid; gap: 8px; text-align: center; font-size: 12.5px; font-weight: 700; color: var(--ink-2); line-height: 1.25; }
.pw2 .merch .ph { aspect-ratio: 1; border-radius: 16px; overflow: hidden; background: #fff; border: 1px solid var(--line); transition: transform .35s var(--spring); }
.pw2 .merch li:hover .ph { transform: translateY(-3px) rotate(-1.5deg); }
.pw2 .merch .ph img { width: 100%; height: 100%; object-fit: cover; }

/* legal footer */
.pw2 .legal { background: var(--ink); color: rgba(255,255,255,.62); font-size: 12.5px; line-height: 1.65; }
.pw2 .legal__inner { max-width: 1280px; margin: 0 auto; padding: 40px 24px 56px; display: grid; gap: 22px; }
.pw2 .legal__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.pw2 .legal__top img { width: 92px; }
.pw2 .legal nav { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.pw2 .legal nav a { color: #fff; text-decoration: none; font-weight: 600; font-size: 14px; }
.pw2 .legal nav a:hover { color: var(--yellow); }
.pw2 .legal p { margin: 0; max-width: 1040px; }
.pw2 .legal strong { color: #fff; }
.pw2 .prizeBand + .legal { border-top: 1px solid rgba(255,255,255,.08); }

/* ==========================================================================
   LOGIN — Default.aspx
   ========================================================================== */
.pw2Login .formCol > .alignCenter { width: 100%; }
.pw2Login #ctl00_ContentPlaceHolder1_divMessageBox, .pw2Login [id$="_divMessageBox"] { width: 100% !important; max-width: 470px; margin: 0 auto 16px !important; padding: 14px 16px; border-radius: 14px; background: #fff1f2; border: 1.5px solid #f6c2c7; color: var(--red-deep); font-size: 14px; }
.pw2Login .loginContainer { position: relative; width: 100%; max-width: 470px; margin: 0 auto; padding: 40px 40px 44px; color: var(--ink); filter: none; text-align: left; }
.pw2Login .loginContainer .cardBadge { position: absolute; top: 32px; right: 34px; width: 110px; margin: 0; }
.pw2Login .loginContainer > .eyebrow { color: var(--primary); }
.pw2Login .loginContainer > table, .pw2Login .loginContainer > table > tbody, .pw2Login .loginContainer > table > tbody > tr, .pw2Login .loginContainer > table > tbody > tr > td { display: block; width: 100%; margin: 0 !important; padding: 0; text-align: left; }
.pw2Login .loginContainer br { display: none; }
.pw2Login .loginContainer .regTitle { margin: 10px 0 0; padding-right: 0; font-family: var(--display); font-weight: 700; font-size: clamp(36px, 3.6vw, 48px); line-height: .95; text-transform: uppercase; color: var(--ink); text-align: left; }
.pw2Login .loginContainer .loginLede { margin: 10px 0 26px;  color: var(--ink-2); }
.pw2Login .loginContainer span[id$="_rfvusername"] { margin-top: 8px; font-size: 13.5px; font-weight: 600; color: var(--primary) !important; }
.pw2Login .loginContainer .buttonBig { display: block; width: 100%; margin: 18px 0 0; }
.pw2Login .loginContainer > div:not(.loginIcons) { margin-top: 22px; text-align: center; font-size: 14.5px; color: var(--ink-2); }
.pw2Login .loginContainer > div a { font-weight: 700; }
.pw2Login .loginIcons { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line); text-align: center; }
.pw2Login .loginIcons .bold { font-size: 20px; letter-spacing: .02em; text-transform: uppercase; color: var(--ink); }
.pw2Login .loginIcons ul { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.pw2Login .loginIcons li { aspect-ratio: 1; border-radius: 14px; background: var(--paper); border: 1px solid var(--line); display: grid; place-items: center; padding: 14%; transition: transform .35s var(--spring); max-width: 94%;}
.pw2Login .loginIcons li:nth-child(odd) { transform: rotate(-3deg); }
.pw2Login .loginIcons li:nth-child(even) { transform: rotate(3deg); }
.pw2Login .loginIcons li:hover { transform: rotate(0) scale(1.08); }
.pw2Login .loginIcons img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 4px 6px rgba(60,20,10,.2)); }
.pw2Login .loginBill { width: 72%; margin: 18px auto 0; transform: rotate(-3deg); filter: drop-shadow(0 16px 18px rgba(20,60,20,.22)); }

/* ==========================================================================
   REGISTER — register.aspx (FormView1 renders as nested tables)
   ========================================================================== */
.pw2Reg .formCol { text-align: left; }
.pw2Reg .formCol table.formview1, .pw2Reg .formCol table.formview1 > tbody, .pw2Reg .formCol table.formview1 > tbody > tr, .pw2Reg .formCol table.formview1 > tbody > tr > td,
.pw2Reg .formCol table.totalWidth > tbody, .pw2Reg .formCol table.totalWidth > tbody > tr, .pw2Reg .formCol table.totalWidth > tbody > tr > td { display: block; width: 100%; margin: 0; padding: 0; }
/* the white card */
.pw2Reg .formCol table.totalWidth { display: block; width: 100%; max-width: 620px; margin: 0 auto; padding: 40px 40px 44px; color: var(--ink); background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); filter: none; backdrop-filter: none; overflow: visible; text-align: left; }
/* .pw2Reg .formCol table.totalWidth::after {
  content: ""; position: absolute; right: 0; bottom: 0; width: 46px; height: 46px; pointer-events: none; border-bottom-right-radius: var(--radius-lg);
  background: linear-gradient(to top left, var(--paper) 0 50%, transparent 50%), linear-gradient(to top left, transparent 50%, #d9cfc2 50%, #f7f2ea 72%, #fff 100%);
  filter: drop-shadow(-3px -3px 4px rgba(60,20,10,.16)); transition: width .35s var(--spring), height .35s var(--spring);
} */
.pw2Reg .formCol table.totalWidth { position: relative; }
.pw2Reg .formCol table.totalWidth:hover::after { width: 58px; height: 58px; }
.pw2Reg .instructionsArea:not(:has(*)) { display: none; }
.pw2Reg .instructionsArea, .pw2Reg .regBox { float: none; width: auto; max-width: none; height: auto; line-height: inherit; }
/* h1.regTitle holds the code box + the "complete the entry form" resource text */
/* font-size 0 hides the bare "Complete the entry form below & submit" resource text (the card header + section labels replace it) */
.pw2Reg .regBox > h1.regTitle { margin: 0 0 18px; display: flex; flex-direction: column; gap: 14px; font: 700 0/1.3 var(--text); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); text-align: left; }
.pw2Reg .regBox > h1.regTitle > * { font-size: 14px; letter-spacing: 0; text-transform: none; }
.pw2Reg .regBox > h1.regTitle > .bold.med, .pw2Reg .regBox > h1.regTitle > img.icons, .pw2Reg .regBox > h1.regTitle > img.million { display: none; }   /* shown in the Collect All 4 section instead */
.pw2Reg .regBox > h1.regTitle > .enterCode { margin: 0 0 12px; font-weight: 400; }
.pw2Reg .enterCode > .bal { margin-bottom: 14px; }
.pw2Reg .enterCode .pinCodeBox { width: 100% !important; margin: 0; background: #fff; }
/* field grid: .regOptions > .sideXside.colLeft / .colRight */
.pw2Reg .regOptions { width: auto; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; text-align: left; }
.pw2Reg .regOptions > * { grid-column: 1 / -1; min-width: 0; }
.pw2Reg .regOptions > .sideXside { grid-column: auto; }
.pw2Reg div.colLeft, .pw2Reg div.colRight { float: none; width: auto; padding: 0; text-align: left; }
.pw2Reg .sideXside { position: relative; }
.pw2Reg .sideXside > .requiredField { position: absolute; top: 8px; right: 12px; font-size: 14px; pointer-events: none; }
.pw2Reg .sideXside .dob ~ .requiredField, .pw2Reg .sideXside > .dob + .requiredField { display: none; }
.pw2Reg .groupLabel { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px; margin-top: 10px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.pw2Reg .groupLabel::after { content: ""; flex: 1; height: 1px; background: var(--line); }
/* checkboxes */
.pw2Reg .regQuestions { display: grid; gap: 14px; margin-top: 12px; padding: 20px; border-radius: 16px; background: var(--paper); border: 1px dashed var(--line); }
.pw2Reg .regQuestions > div:empty { display: none; }
.pw2Reg .rulesRead, .pw2Reg .subscription1, .pw2Reg .subscription2 { position: relative; padding: 0 0 0 38px; text-indent: 0; clear: none; font-size: 14px; line-height: 1.5; color: var(--ink-2); text-align: left; }
.pw2Reg .rulesRead input[type=checkbox], .pw2Reg .subscription1 input[type=checkbox], .pw2Reg .subscription2 input[type=checkbox] { position: absolute; left: 0; top: -1px; width: 24px; height: 24px; margin: 0; accent-color: var(--primary); cursor: pointer; }
.pw2Reg .rulesRead label, .pw2Reg .subscription1 label, .pw2Reg .subscription2 label { cursor: pointer; }
.pw2Reg .captchaDiv { padding: 0; }
.pw2Reg .question { padding: 0; margin-top: 18px; text-align: center; font-size: 13px; color: var(--ink-3); }
.pw2Reg .question br { display: none; }
.pw2Reg .question .buttonBig { display: block; width: 100%; margin: 12px 0 0; }
.pw2Reg .cardFoot { margin-top: 22px; display: grid; gap: 14px; justify-items: center; font-size: 14.5px; color: var(--ink-2); }
.pw2Reg .cardFoot a { font-weight: 700; }
.pw2Reg .secure { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--ink-3); }
.pw2Reg .secure svg { width: 14px; height: 14px; }
/* "no longer accepting entries" */
.pw2Reg .formCol > div > .totalWidth h1, .pw2Reg .formCol > .totalWidth h1 { font-family: var(--display); text-transform: uppercase; color: var(--ink); }
/* collect all 4 section under the form */
.pw2Reg .collect { background: #fff; border-top: 1px solid var(--line); overflow: clip; }
.pw2Reg .collect .wrap { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 64px; align-items: center; padding-top: 88px; padding-bottom: 96px; }
.pw2Reg .bill { position: relative; }
.pw2Reg .bill img.million { width: 84%; transform: rotate(-4deg); filter: drop-shadow(0 30px 30px rgba(20,60,20,.25)); transition: transform .5s var(--spring); }
.pw2Reg .bill:hover img.million { transform: rotate(-1deg) scale(1.02); }
.pw2Reg .bill .cup { position: absolute; width: 25%; right: 0; bottom: -22%; transform: rotate(9deg); filter: drop-shadow(0 20px 24px rgba(60,20,10,.35)); }

/* ==========================================================================
   DASHBOARD — dashboard.aspx
   ========================================================================== */
.pw2Dash > .regTitle { margin: 0; }   /* wrapper around the popup PlaceHolders */
.pw2Dash > .totalWidth { width: 100%; max-width: none; margin: 0; padding: 0; color: var(--ink); background: none; border-radius: 0; filter: none; backdrop-filter: none; overflow: visible; text-align: left; }
.pw2Dash .mono { font-family: var(--mono); }
.pw2Dash [id="enter"], .pw2Dash [id="collection"], .pw2Dash [id="codes"], .pw2Dash [id="prizes"] { scroll-margin-top: 72px; }

/* .totalWidth > .regTitle wraps everything below the app bar — make it a plain container */
.pw2Dash > .totalWidth > .regTitle { margin: 0; padding: 0; max-width: none; font-size: 16px; color: var(--ink); text-align: left; text-wrap: initial; }
/* entry hero (added wrapper around the welcome + code entry) */
.pw2Dash .entryHero { position: relative; overflow: clip; isolation: isolate; margin: 0; padding: 60px max(24px, calc((100% - 1192px) / 2)) 112px; background: var(--hero); color: #fff; }
.pw2Dash .entryHero > * { position: relative; z-index: 1; max-width: 640px; }
.pw2Dash .entryHero > .burst { position: absolute; z-index: -1; max-width: none; left: 30%; right: -40%; top: -60%; bottom: -60%; }
.pw2Dash .welcome { color: var(--yellow); }
.pw2Dash .entryTitle { margin: 14px 0 0; font-family: var(--display); font-size: clamp(44px, 5.4vw, 68px); line-height: .95; text-transform: uppercase; text-wrap: balance; }
.pw2Dash .entryTitle span { color: var(--yellow); }
.pw2Dash .entryHero > .space1 { display: none; }
.pw2Dash .entry__art { position: absolute !important; z-index: 0 !important; right: max(24px, calc((100% - 1192px) / 2)); top: 0; bottom: 0; width: 34%; max-width: 420px !important; pointer-events: none; }
.pw2Dash .entry__cup { position: absolute; right: 8%; top: 50%; width: min(240px, 72%); transform: translateY(-50%) rotate(8deg); filter: drop-shadow(0 40px 40px rgba(40,0,5,.55)); animation: pw2CupIn 1s var(--spring) both; }
@keyframes pw2CupIn { from { opacity: 0; transform: translateY(-40%) rotate(20deg) scale(.9); } }
.pw2Dash .entry__art .float-icon { z-index: 2; }
.pw2Dash .ea-1 { width: 122px; left: 0; top: 10%; --r: -12deg; }
.pw2Dash .ea-2 { width: 136px; left: 2%; bottom: 14%; --r: 8deg; animation-delay: -2.5s; }
/* daily count pill (wraps the two existing .small lines) */
.pw2Dash .dailyCount { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 22px; font-size: 13.5px; color: rgba(255,255,255,.82); }
.pw2Dash .dailyCount .small { font-size: inherit; }
.pw2Dash .dailyCount .myCount { color: #fff; font-weight: 700; }
.pw2Dash .daily__pips { display: flex; gap: 4px; }
.pw2Dash .daily__pips i { width: 18px; height: 6px; border-radius: 3px; background: rgba(255,255,255,.22); }
.pw2Dash .daily__pips i.used { background: var(--yellow); }
/* code box: existing plhEnterCodes pieces laid out on a grid */
.pw2Dash .enterCode { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; margin-top: 30px; }
.pw2Dash .enterCode > * { grid-column: 1 / -1; }
.pw2Dash .enterCode > br, .pw2Dash .enterCode > .space0, .pw2Dash .enterCode .keywordcontent .bold { display: none; }
.pw2Dash .enterCode > .keywordcontent { grid-row: 1; }
.pw2Dash .enterCode > .frmfld { grid-row: 2; grid-column: 1; }
.pw2Dash .enterCode > .buttonBig { grid-row: 2; grid-column: 2; }
.pw2Dash .enterCode > span[id$="_revkeywordTextBox"] { grid-row: 3; }
.pw2Dash .enterCode > a { grid-row: 4; justify-self: start; margin-top: 16px; font-size: 13.5px; }
.pw2Dash .validationSummaryTAF { margin-bottom: 14px; padding: 12px 14px; border-radius: 12px; background: rgba(255,70,80,.14); border: 1px solid rgba(255,120,125,.35); color: #ffd5d8; font-size: 14px; }
.pw2Dash .validationSummaryTAF ul { margin: 6px 0 0; padding-left: 1.1em; }

/* stats strip */
.pw2Dash .stats { position: relative; z-index: 2; margin-top: -36px; }
.pw2Dash .stats__grid { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; background: #fff; border-radius: 20px; box-shadow: var(--shadow); overflow: hidden; }
.pw2Dash .stat { padding: 22px 26px; display: grid; gap: 2px; border-left: 1px solid var(--line); }
.pw2Dash .stat:first-child { border-left: 0; }
.pw2Dash .stat dt { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.pw2Dash .stat dd { margin: 0; font-family: var(--display); font-size: 40px; line-height: 1.05; font-variant-numeric: tabular-nums; }
.pw2Dash .stat dd small { font-family: var(--text); font-size: 15px; font-weight: 700; color: var(--ink-3); margin-left: 4px; }
.pw2Dash .stat dd.word { font-size: 24px; padding-top: 10px; }
.pw2Dash .stat--accent dd { color: var(--red); }

/* icon collection board */
.pw2Dash .collection { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: stretch; }
.pw2Dash .board { --behind: var(--paper); padding: 28px; }
.pw2Dash .board__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.pw2Dash .board__count { font-family: var(--display); font-size: 22px; text-transform: uppercase; }
.pw2Dash .board__count b { color: var(--red); }
.pw2Dash .meter { flex: 1; max-width: 320px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.pw2Dash .meter i { height: 10px; border-radius: 5px; background: var(--paper-2); overflow: hidden; position: relative; }
.pw2Dash .meter i::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--red), var(--red-hot)); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease-out); }
.pw2Dash .meter i.on::after { transform: scaleX(1); }
.pw2Dash .slots { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.pw2Dash .slot { display: grid; gap: 14px; text-align: center; }
.pw2Dash .slot__art { position: relative; aspect-ratio: 1; border-radius: 20px; border: 2px dashed #e2d4c1; background: var(--paper); transition: background .3s, border-color .3s; }
.pw2Dash .slot__art img { position: absolute; inset: 14%; width: 72%; height: 72%; object-fit: contain; filter: grayscale(1) brightness(1.6) contrast(.35); opacity: .45; transition: filter .5s, opacity .5s, transform .5s var(--spring); }
.pw2Dash .slot__lock { position: absolute; top: 10px; right: 10px; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--ink-3); box-shadow: var(--shadow-sm); font-size: 11px; }
.pw2Dash .slot__name { font-weight: 700; font-size: 14.5px; color: var(--ink-3); line-height: 1.25; }
.pw2Dash .slot__name small { display: block; font-weight: 500; font-size: 12.5px; margin-top: 2px; }
.pw2Dash .slot.is-got .slot__art { border: 2px solid transparent; background: radial-gradient(circle at 50% 40%, #fff 0%, #fff4e4 100%); box-shadow: inset 0 0 0 1px var(--line); }
.pw2Dash .slot.is-got .slot__art img { filter: drop-shadow(0 10px 12px rgba(120,10,10,.28)); opacity: 1; transform: rotate(var(--r, -4deg)); }
.pw2Dash .slot.is-got .slot__lock { background: var(--money); color: #fff; }
.pw2Dash .slot.is-got .slot__name { color: var(--ink); }
.pw2Dash .slot.is-got .slot__name small { color: var(--money); font-weight: 700; }
.pw2Dash .slot:nth-child(2) { --r: 4deg; } .pw2Dash .slot:nth-child(3) { --r: -3deg; } .pw2Dash .slot:nth-child(4) { --r: 3deg; }
.pw2Dash .jackpot { position: relative; overflow: hidden; border-radius: var(--radius-lg); padding: 28px 26px 30px; background: linear-gradient(165deg, #5d8f52 0%, var(--money) 45%, var(--money-deep) 100%); color: #fff; display: flex; flex-direction: column; box-shadow: var(--shadow-lg); }
.pw2Dash .jackpot::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 2px, transparent 2px 9px); pointer-events: none; }
.pw2Dash .jackpot > * { position: relative; }
.pw2Dash .jackpot .eyebrow { color: var(--money-paper); }
.pw2Dash .jackpot img { width: 100%; max-width: none; margin: 14px auto 14px; transform: rotate(-5deg); filter: drop-shadow(0 18px 18px rgba(0,30,0,.45)); }
.pw2Dash .jackpot h3 { font-family: var(--display); font-size: 26px; line-height: 1.05; text-transform: uppercase; margin: 0; }
.pw2Dash .jackpot p { margin: 8px 0 0; color: rgba(255,255,255,.82); font-size: 14.5px; }
.pw2Dash .jackpot .buttonBig { margin: 22px 0 0; margin-top: auto; }
.pw2Dash .jackpot p + .buttonBig { margin-top: 22px; }

/* codes history: the existing .alignCenter block + both Repeaters */
.pw2Dash .codesSection { max-width: 1240px; padding: 24px 24px 43px; border-top: solid 1px #e3e3e3; border-bottom: solid 1px #e3e3e3; text-align: left; margin: 60px auto 0; }
.pw2Dash .notice { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start; padding: 16px 18px; border-radius: 16px; background: #fff7dc; border: 1px solid #f3dc8e; color: #6b4b00; font-size: 14px; margin-bottom: 24px; }
.pw2Dash .notice .fas { font-size: 20px; color: #c58a00; margin-top: 1px; }
.pw2Dash .notice b { color: #4d3500; }
.pw2Dash .tables { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.pw2Dash .tables > .space0 { display: none; }
.pw2Dash .panel { background: #fff; border-radius: 20px; box-shadow: var(--shadow); overflow: hidden; }
.pw2Dash .panel__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 24px; border-bottom: 1px solid var(--line); }
.pw2Dash .panel__head h3 { margin: 0; font-family: var(--display); font-size: 20px; text-transform: uppercase; letter-spacing: .02em; color: var(--ink); }
.pw2Dash .chip { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 4px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; line-height: 1.2; background: var(--paper-2); color: var(--ink-2); }
.pw2Dash .chip::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: currentColor; opacity: .7; }
.pw2Dash .chip--win { background: #fff2b3; color: #7a4a00; }
.pw2Dash .chip--money { background: var(--money-paper); color: var(--money-deep); }
.pw2Dash .chip--red { background: #fde3e5; color: var(--red-deep); }
.pw2Dash .panel table { width: 100% !important; margin: 0 !important; border: 0; border-collapse: collapse; font-size: 14.5px; line-height: 1.4; }
.pw2Dash .panel th { text-align: left; font-size: 11.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); padding: 12px 24px; background: var(--paper); border: 0; }
.pw2Dash .panel td { padding: 15px 24px; border: 0; border-top: 1px solid #f1e7da; vertical-align: middle; color: var(--ink-2); }
.pw2Dash .panel td:first-child { font-family: var(--mono); font-size: 15px; letter-spacing: .1em; color: var(--ink); }
.pw2Dash .panel tbody tr:hover { background: #fffbf5; }
.pw2Dash .panel.is-collapsed tbody tr:nth-child(n+7) { display: none; } /* 6 rows — matches SHOW_ROWS in peel-v2.js */
.pw2Dash .panel__more { display: block; width: 100%; padding: 14px 24px; border: 0; border-top: 1px solid var(--line); background: var(--paper); font: 700 13.5px/1.2 var(--text); color: var(--red-deep); text-align: center; cursor: pointer; }
.pw2Dash .panel__more::after { content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 8px; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-3px) rotate(45deg); transition: transform .2s; }
.pw2Dash .panel:not(.is-collapsed) .panel__more::after { transform: translateY(0) rotate(-135deg); }
.pw2Dash .panel__more:hover { background: var(--paper-2); }
.pw2Dash .panel__more:focus-visible { outline: 2px solid var(--red-deep); outline-offset: -4px; }
.pw2Dash .panel tbody:empty::after { content: "Nothing here yet — enter a code above."; display: table-cell; padding: 18px 24px; color: var(--ink-3); font-size: 14px; }
.pw2Dash .stickerCell { display: flex; align-items: center; gap: 10px; font-weight: 700; color: var(--ink); }
.pw2Dash .stickerCell img { width: 36px; height: 36px; object-fit: contain; }

/* ==========================================================================
   THANK YOU — thank_you.aspx (instant-win result)
   ========================================================================== */
.pw2Thanks .thxStage { display: grid; place-items: center; min-height: calc(100vh - 72px); padding: 120px 20px 80px; }
.pw2Thanks .thxStage > .totalWidth { --behind: transparent; position: relative; width: min(500px, 100%); margin: 0; padding: 44px 36px 32px; text-align: center; color: var(--ink-2); background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); filter: none; backdrop-filter: none; overflow: visible; animation: pw2PopIn .45s var(--spring) both; }
.pw2Thanks .thxStage > .totalWidth:has(.thxWin) { background: linear-gradient(180deg, #fff 0%, #fff 55%, #f0f7e8 100%); }
/* the code-behind turns plhWinner on but never turns plhThanksStandard off — don't show both */
.pw2Thanks .totalWidth:has(.thxWin) .thxSorry { display: none; }
.pw2Thanks .regTitle { margin: 8px 0 0; font: 400 16px/1.5 var(--text); color: var(--ink-2); text-transform: none; }
.pw2Thanks .regTitle > br, .pw2Thanks .regTitle > .space0 { display: none; }
.pw2Thanks .regTitle .large { font-family: var(--display); font-size: 40px; line-height: 1; text-transform: uppercase; color: var(--ink); margin-bottom: 12px; }
.pw2 .popupArt .sym--win { background: var(--yellow); color: var(--red-ink); font-size: 48px; animation: pw2StickOn .9s .1s var(--spring) both; --r: -6deg; }
.pw2Thanks .thxPrize { display: block; width: 100%; max-width: 280px; height: auto; margin: 4px auto 16px; }
.pw2Thanks .thxBody { margin: 0 auto; max-width: 34ch; }
.pw2Thanks a.claimnow { display: block; margin: 20px 0 0; padding: 15px 25px; border-radius: 12px; background: var(--primary); color: #fff; font-weight: 700; text-decoration: none; }
.pw2Thanks a.claimnow:hover { background: var(--secondary); color: #fff; }
.pw2Thanks .totalWidth > .buttonBig, .pw2Thanks .totalWidth a.buttonBig { display: block; width: 100%; margin: 24px 0 0; }
.pw2Thanks .thxWin:has(a.claimnow) .buttonBig { color: var(--primary) !important; background: #fff; }
.pw2Thanks .thxWin:has(a.claimnow) .buttonBig:hover { color: #fff !important; background: var(--secondary); }
.pw2Thanks .disclaimer { margin-top: 20px; padding: 14px 16px; border-radius: 14px; background: var(--paper); border: 1px dashed var(--line); font: 500 13px/1.6 var(--mono); color: var(--ink-2); text-align: left; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1080px) {
  .pw2 .split { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .pw2 .split > .globalHeader > .heroSticky { position: relative; height: auto; min-height: 0; padding: 36px 24px 0; }
  .pw2 .heroTop { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 18px; margin: 0 auto; }
  .pw2 .heroTop .eyebrow::before { display: none; }
  .pw2 .subLede { margin-inline: auto; }
  .pw2 .steps { margin-inline: auto; }
  .pw2 .heroPrizes { flex: none; min-height: 0; margin-top: 28px; }
  .pw2 .heroPrizes img { position: static; height: auto; max-width: 680px; margin: 0 auto; transform: translateY(5%); }
  .pw2 .split .fi-1 { display: none; }
  .pw2 .formCol { padding-top: 0; }
  .pw2Login .formCol .loginContainer, .pw2Reg .formCol table.totalWidth { margin-top: -40px; z-index: 2; }
  .pw2 .prizeGrid { grid-template-columns: repeat(2, 1fr); }
  .pw2 .instant { grid-template-columns: 1fr; }
  .pw2 .instantArt { max-width: 520px; margin: 0 auto; }
  .pw2 .appbar nav { display: none; }
  .pw2Reg .collect .wrap { grid-template-columns: 1fr; gap: 48px; padding-top: 64px; }
  .pw2Reg .bill { max-width: 560px; margin: 0 auto; }
  .pw2Dash .entryHero { padding-bottom: 84px; }
  .pw2Dash .entry__art { display: none; }
  .pw2Dash .stats__grid { grid-template-columns: repeat(2, 1fr); }
  .pw2Dash .stat:nth-child(3) { border-left: 0; }
  .pw2Dash .stat:nth-child(n+3) { border-top: 1px solid var(--line); }
  .pw2Dash .collection, .pw2Dash .tables { grid-template-columns: 1fr; }
  .pw2Dash .jackpot { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; align-items: center; }
  .pw2Dash .jackpot img { grid-row: span 4; grid-column: 2; width: 100%; margin: 0; }
}
@media (max-width: 640px) {
  .pw2 .utility__note { display: none; }
  .pw2 .utility nav { gap: 16px; }
  .pw2 .split > .globalHeader > .heroSticky { padding-top: 28px; }
  .pw2 .heroTop .logo { width: 150px; }
  .pw2 .lede { font-size: 19px; }
  .pw2 .subLede { font-size: 15px; }
  .pw2 .steps { grid-template-columns: 1fr; gap: 6px; margin-top: 22px; }
  .pw2 .steps li { display: grid; grid-template-columns: 34px 1fr; gap: 0 14px; align-items: center; padding: 10px 14px; font-size: 13.5px; }
  .pw2 .steps .n { margin: 0; grid-row: span 2; }
  .pw2 .steps b { font-size: 15px; }
  .pw2 .formCol { padding-inline: 12px; }
  .pw2Login .loginContainer, .pw2Reg .formCol table.totalWidth { padding: 28px 20px 32px; }
  .pw2Reg .formCol table.totalWidth::after { width: 34px; height: 34px; }
  .pw2 .cardBadge, .pw2Login .loginContainer .cardBadge { width: 64px; }
  .pw2Login .loginContainer .cardBadge { top: 22px; right: 20px; }
  .pw2Reg .regOptions > .sideXside { grid-column: 1 / -1; }
  .pw2 .dob select { padding: 0 20px 0 10px !important; background-position: right 6px center !important; }
  .pw2 .enterCode { padding: 22px 16px 18px; }
  .pw2 .enterCode .frmfld input[type=text] { font-size: 21px; letter-spacing: .14em; }
  .pw2Dash .enterCode { grid-template-columns: 1fr; }
  .pw2Dash .enterCode > .buttonBig { grid-row: 3; grid-column: 1; margin-top: 12px; min-height: 60px; }
  .pw2Dash .enterCode > span[id$="_revkeywordTextBox"] { grid-row: 4; }
  .pw2Dash .enterCode > a { grid-row: 5; }
  .pw2 .iconTiles { grid-template-columns: repeat(2, 1fr); }
  .pw2 .prizeGrid { grid-template-columns: 1fr; }
  .pw2 .prize--wide { grid-column: auto; }
  .pw2 .tripList { grid-template-columns: 1fr; }
  .pw2 .prize--trips .plane { display: none; }
  .pw2 .merch { grid-template-columns: repeat(3, 1fr); }
  .pw2 .gamePopup { padding: 40px 22px 26px; }
  .pw2 .gamePopup .med.bold.uppercase, .pw2Thanks .regTitle .large { font-size: 32px; }
  .pw2 .appbar__inner { height: 60px; gap: 12px; }
  .pw2 .appbar__logo { width: 70px; height: 60px; }
  .pw2 .appbar__logo img { width: 70px; }
  .pw2 .user__chip span:last-child { display: none; }
  .pw2 .user__chip { padding: 4px; }
  .pw2Dash .entryHero { padding-top: 40px; }
  .pw2Dash .stat { padding: 16px 18px; }
  .pw2Dash .stat dd { font-size: 32px; }
  .pw2Dash .board { padding: 20px 16px; --corner: 34px; }
  .pw2Dash .board__top { flex-direction: column; align-items: stretch; }
  .pw2Dash .meter { max-width: none; }
  .pw2Dash .slots { grid-template-columns: repeat(2, 1fr); }
  .pw2Dash .jackpot { display: flex; }
  .pw2Dash .jackpot img { width: 100%; margin: 12px 0; }
  .pw2Dash .panel th, .pw2Dash .panel td { padding-inline: 12px; }
  .pw2Dash .panel td:first-child { font-size: 13px; letter-spacing: .04em; }
  .pw2Thanks .thxStage { padding-top: 110px; }
  .pw2Thanks .thxStage > .totalWidth { padding: 40px 22px 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .pw2 *, .pw2 *::before, .pw2 *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* ==========================================================================
   claim.aspx — prize picker (.pw2Claim)
   ========================================================================== */
.pw2Claim .claimHero { padding: 64px 0 132px; text-align: center; }
.pw2Claim .claimHero > .wrap { position: relative; }
.pw2Claim .claimHero__title { margin: 12px 0 14px; font-family: var(--display); font-weight: 700; font-size: clamp(44px, 7vw, 76px); line-height: .92; text-transform: uppercase; color: #fff; text-shadow: 0 6px 24px rgba(60,0,0,.35); animation: pw2PopIn .5s var(--spring) both; }
.pw2Claim .claimHero__lede { max-width: 42ch; margin: 0 auto; font-size: 17px; color: rgba(255,255,255,.88); }
.pw2Claim .claimHero__lede b { color: #fff; }

.pw2Claim .claimPick { position: relative; z-index: 1; margin-top: -88px; padding-bottom: 48px; }
.pw2Claim .pickGrid { scroll-margin-top: 96px; min-width: 0; margin: 0 auto; border: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.pw2Claim .pickGrid__legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.pw2Claim .pick { position: relative; display: grid; grid-template-rows: auto 1fr; gap: 12px; padding: 12px 12px 16px; text-align: center; background: #fff; border: 2px solid transparent; border-radius: 20px; box-shadow: var(--shadow); cursor: pointer; transition: transform .3s var(--spring), border-color .15s, box-shadow .2s; animation: pw2PopIn .45s var(--spring) both; }
.pw2Claim .pick:nth-child(n+4) { animation-delay: .04s; }
.pw2Claim .pick:nth-child(n+7) { animation-delay: .08s; }
.pw2Claim .pick:nth-child(n+10) { animation-delay: .12s; }
.pw2Claim .pick:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.pw2Claim .pick input { position: absolute; top: 50%; left: 50%; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.pw2Claim .pick__ph { position: relative; display: grid; place-items: center; aspect-ratio: 1; border-radius: 14px; overflow: hidden; background: #fff; }
.pw2Claim .pick__ph img { width: 100%; height: 100%; object-fit: contain; transition: transform .4s var(--spring); }
.pw2Claim .pick:hover .pick__ph img { transform: scale(1.04) rotate(-1.5deg); }
.pw2Claim .pick__ph:has(.pick__soon) { place-content: center; gap: 10px; background: var(--paper); border: 1px dashed var(--line); }
.pw2Claim .pick__ph .pick__soon { width: 46%; height: auto; margin: 0 auto; opacity: .22; filter: grayscale(1); }
.pw2Claim .pick__ph em { font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.pw2Claim .pick__name { align-self: center; font-size: 14.5px; font-weight: 700; line-height: 1.3; color: var(--ink); text-wrap: balance; }
.pw2Claim .pick__tick { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--primary); color: #fff; font-size: 14px; box-shadow: 0 4px 10px -2px rgba(148,5,19,.5); transform: scale(0) rotate(-45deg); transition: transform .35s var(--spring); }

.pw2Claim .pick:has(input:checked) { border-color: var(--primary); box-shadow: 0 0 0 5px rgba(215,28,46,.14), var(--shadow-lg); transform: translateY(-4px); }
.pw2Claim .pick:has(input:checked) .pick__tick { transform: none; }
.pw2Claim .pick:has(input:focus-visible) { outline: 3px solid var(--yellow); outline-offset: 3px; }
/* sold out: add disabled to the card's <input> */
.pw2Claim .pick:has(input:disabled) { cursor: not-allowed; transform: none; box-shadow: none; border-color: var(--line); background: var(--paper); }
.pw2Claim .pick:has(input:disabled) .pick__ph { opacity: .5; filter: grayscale(1); }
.pw2Claim .pick:has(input:disabled) .pick__ph img { transform: none; }
.pw2Claim .pick:has(input:disabled) .pick__name { color: var(--ink-3); }
.pw2Claim .pick:has(input:disabled) .pick__name::after { content: "Sold out"; display: block; margin-top: 4px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--red-deep); }

/* sticky "your pick" bar */
.pw2Claim .claimBar { position: sticky; bottom: 0; z-index: 20; padding: 12px 0 10px; background: rgba(255,249,240,.94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-top: 1px solid var(--line); box-shadow: 0 -12px 30px -20px rgba(60,20,10,.4); }
.pw2Claim .claimBar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pw2Claim .claimBar__pick { display: flex; align-items: center; gap: 12px; min-width: 0; }
.pw2Claim .claimBar__art { flex: none; width: 52px; height: 52px; border-radius: 12px; border: 1px solid var(--line); background: #fff center / 86% no-repeat; }
.pw2Claim:not(.has-pick) .claimBar__art { background: var(--paper-2); border-style: dashed; }
.pw2Claim .claimBar__pick > span:last-child { min-width: 0; }
.pw2Claim .claimBar__pick small { display: block; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3); }
.pw2Claim .claimBar__pick strong { display: block; overflow: hidden; font-size: 16.5px; line-height: 1.3; color: var(--ink); white-space: nowrap; text-overflow: ellipsis; }
.pw2Claim:not(.has-pick) .claimBar__pick strong { color: var(--ink-3); font-weight: 500; }
.pw2Claim .claimBar .buttonBig { flex: none; margin: 0; padding-inline: 28px; }
.pw2Claim:not(.has-pick) .claimBar .buttonBig { background: var(--ink-3); border-color: var(--ink-3); }
.pw2Claim .claimBar__note { margin: 6px auto 0; font-size: 12.5px; color: var(--ink-3); }
@media (max-width: 960px) {
  .pw2Claim .pickGrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .pw2Claim .claimHero { padding: 44px 0 112px; }
  .pw2Claim .claimHero__lede { font-size: 16px; }
  .pw2Claim .claimPick { margin-top: -76px; }
  .pw2Claim .pickGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 0 16px; }
  .pw2Claim .pick { padding: 8px 8px 12px; gap: 8px; border-radius: 16px; }
  .pw2Claim .pick__name { font-size: 13.5px; }
  .pw2Claim .pick__tick { top: 6px; right: 6px; width: 28px; height: 28px; font-size: 12px; }
  .pw2Claim .claimBar .wrap { padding: 0 16px; }
  .pw2Claim .claimBar__inner { gap: 10px; }
  .pw2Claim .claimBar__art { width: 44px; height: 44px; }
  .pw2Claim .claimBar__pick strong { font-size: 15px; }
  .pw2Claim .claimBar .buttonBig { min-width: 0; padding: 13px 16px; font-size: 15px; }
}
