/* NekoOne Reward Room V2 40K v0.1.0
 * PROTECTED: 40K light-purple room / guide plush / Message Card / 7-track music-box appearance
 * REPLACED: duplicated auth / manual point entry / second "choose rewards" gate
 */
.nrrv2-preserved.nrrv2-40k{--nrse-main:#CDB7E8;--nrse-pale:#F1E9FA;--nrse-soft:#E3D5F2;--nrse-deep:#7C5AA0;--nrse-ink:#49375C;--nrse-muted:#756486;--nrse-line:rgba(124,90,160,.28);--nrse-shadow:rgba(76,53,99,.18);position:relative;width:min(100%,1080px);margin:0 auto;padding:22px 12px 52px;color:var(--nrse-ink);background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.96),transparent 30%),linear-gradient(180deg,#faf6ff,#e9ddf6 52%,#f6effc);border-radius:30px;overflow:hidden;box-sizing:border-box}
.nrrv2-preserved *,.nrrv2-preserved *::before,.nrrv2-preserved *::after{box-sizing:border-box}
.nrrv2-preserved .nrse-panel{width:100%;margin:0 0 24px;padding:27px 17px;background:rgba(10,31,58,.88);border:1px solid var(--nrse-line);border-radius:24px;box-shadow:0 12px 30px var(--nrse-shadow);text-align:center}
.nrrv2-preserved .nrse-kicker{margin:0 0 8px;color:var(--nrse-deep);font-size:11px;font-weight:800;letter-spacing:.15em}
.nrrv2-preserved h1,.nrrv2-preserved h2,.nrrv2-preserved h3{margin:0 0 17px;color:var(--nrse-ink);line-height:1.55}.nrrv2-preserved h1{font-size:clamp(27px,7vw,43px)}.nrrv2-preserved h2{font-size:clamp(21px,5.4vw,31px)}
.nrrv2-preserved p,.nrrv2-preserved li,.nrrv2-preserved label{line-height:1.85;overflow-wrap:anywhere}
.nrrv2-preserved .nrse-main-button,.nrrv2-preserved .nrse-sub-button,.nrrv2-preserved .nrrv2-primary,.nrrv2-preserved .nrrv2-soft-button{display:inline-flex;align-items:center;justify-content:center;min-height:47px;padding:11px 20px;border-radius:999px;border:1px solid var(--nrse-deep);font-weight:800;text-decoration:none;cursor:pointer}
.nrrv2-preserved .nrse-main-button,.nrrv2-preserved .nrrv2-primary{color:#eadff5;background:linear-gradient(180deg,#eadcf8,#c6a9e3)}.nrrv2-preserved .nrse-sub-button,.nrrv2-preserved .nrrv2-soft-button{color:var(--nrse-deep);background:#fffdfd}
.nrrv2-preserved button:disabled{opacity:.48;cursor:not-allowed}
.nrrv2-preview-note{margin:0 0 18px;padding:10px 14px;text-align:center;background:#eadff5;color:#fff;border-radius:999px;font-size:12px;font-weight:800}.nrrv2-preview-note strong{margin-right:8px;color:#ffdce8}
/* original room eyecatch — image itself is preserved; only responsive framing is added */
.nrrv2-eyecatch{width:100%;margin:0 0 24px;padding:0;border:1px solid var(--nrse-line);border-radius:26px;background:#fffdfd;box-shadow:0 12px 30px var(--nrse-shadow);overflow:hidden}.nrrv2-eyecatch img{display:block;width:100%;height:auto;margin:0;object-fit:contain}
/* exact guide / music launch appearance */
.nrrv2-preserved .nrse-guide-button,.nrrv2-preserved .nrse-music-launcher{display:flex;width:min(100%,390px);margin:0 auto;padding:16px;flex-direction:column;align-items:center;gap:11px;color:var(--nrse-ink);background:linear-gradient(180deg,#fffdfd,#f0e5f8);border:1px solid var(--nrse-line);border-radius:24px;box-shadow:0 12px 25px var(--nrse-shadow);cursor:pointer}
.nrrv2-preserved .nrse-guide-button img{display:block;width:min(100%,320px);aspect-ratio:1/1;object-fit:contain}.nrrv2-preserved .nrse-music-launcher img{display:block;width:min(100%,260px);aspect-ratio:1/1;object-fit:contain}
.nrrv2-preserved .nrse-music-panel{width:min(100%,620px);margin:20px auto 0;padding:18px 14px;background:var(--nrse-pale);border:1px solid var(--nrse-line);border-radius:21px}.nrrv2-preserved .nrse-track-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 0 16px}.nrrv2-preserved .nrse-track-button{min-height:56px;padding:7px 5px;color:var(--nrse-deep);background:#fffdfd;border:1px solid var(--nrse-line);border-radius:14px;cursor:pointer}.nrrv2-preserved .nrse-track-button strong,.nrrv2-preserved .nrse-track-button small{display:block}.nrrv2-preserved .nrse-track-button small{margin-top:3px;font-size:9px}.nrrv2-preserved .nrse-track-button.is-playing{color:#fff;background:var(--nrse-deep)}
/* Message Card: Card Engine classes are intentionally preserved. These guards keep iPhone close usable. */
.nrrv2-preserved .nrse-card-modal{position:fixed;inset:0;z-index:100000;display:none;place-items:center;padding:18px}.nrrv2-preserved .nrse-card-modal.is-open{display:grid;align-items:flex-start;overflow-x:hidden;overflow-y:auto;min-height:100vh;min-height:100dvh;padding-top:max(16px,env(safe-area-inset-top));padding-right:14px;padding-bottom:max(28px,calc(env(safe-area-inset-bottom) + 18px));padding-left:14px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.nrrv2-preserved .nrse-card-modal .nce-modal__backdrop{position:fixed;inset:0;border:0;background:rgba(19,9,15,.72)}.nrrv2-preserved .nrse-card-modal .nce-card{position:relative;z-index:2;box-sizing:border-box;width:min(100%,420px);max-height:calc(100dvh - max(16px,env(safe-area-inset-top)) - max(28px,calc(env(safe-area-inset-bottom) + 18px)));margin:0 auto;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-padding-bottom:110px}.nrrv2-preserved .nrse-card-modal .nce-card__footer{position:relative;z-index:5;flex-shrink:0;min-height:104px;margin-top:24px;padding-bottom:max(28px,calc(env(safe-area-inset-bottom) + 18px))}.nrrv2-preserved .nrse-card-modal .nce-card__close{position:relative;z-index:6;min-width:82px;min-height:72px;touch-action:manipulation}
/* fallback card skin only if global NekoOne Card Engine CSS is not present */
.nrrv2-preserved .nrse-card-modal .nce-card{padding:26px 22px;border-radius:34px;color:rgba(255,252,255,.97);background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.16),transparent 28%),linear-gradient(145deg,#34627a,#27485d 56%,#182c3b);border:1px solid rgba(232,230,240,.45);box-shadow:0 28px 75px rgba(26,9,26,.5);text-align:left}.nrrv2-preserved .nce-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.nrrv2-preserved .nce-card__kicker{font-size:10px;letter-spacing:.18em;color:rgba(235,224,246,.76)}.nrrv2-preserved .nce-card__title{font-size:24px;font-weight:700}.nrrv2-preserved .nce-card__logo{width:56px;height:56px;object-fit:contain}.nrrv2-preserved .nce-card__divider{margin:20px 0;text-align:center}.nrrv2-preserved .nce-divider-mark svg{width:34px;fill:rgba(255,252,255,.75)}.nrrv2-preserved .nce-card__message{margin:0 0 18px;color:rgba(255,252,255,.92)}.nrrv2-preserved .nce-card__message--soft{color:rgba(235,224,246,.76)}.nrrv2-preserved .nce-card__footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.nrrv2-preserved .nce-card__signature{font-weight:700}.nrrv2-preserved .nce-card__close{border:1px solid rgba(255,255,255,.38);border-radius:20px;background:rgba(255,255,255,.08);color:#fff}
/* one-step auth */
.nrrv2-auth-head{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}.nrrv2-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:var(--nrse-soft);color:var(--nrse-deep);font-size:11px;font-weight:900}.nrrv2-auth-form{display:grid;grid-template-columns:1fr;gap:13px;max-width:620px;margin:20px auto 0}.nrrv2-auth-form label{display:grid;gap:6px;text-align:left;font-weight:800}.nrrv2-auth-form input{width:100%;min-height:52px;padding:11px 13px;border:2px solid var(--nrse-line);border-radius:15px;background:#fffdfd;color:var(--nrse-ink);font-size:18px}.nrrv2-message{min-height:1.6em;margin:12px 0 0;color:var(--nrse-deep);font-weight:800}.nrrv2-member{display:grid;grid-template-columns:1fr;gap:10px;margin:18px auto 0;max-width:620px}.nrrv2-member-card{padding:16px;background:var(--nrse-pale);border:1px solid var(--nrse-line);border-radius:17px}.nrrv2-member-card span,.nrrv2-member-card strong{display:block}.nrrv2-member-card strong{margin-top:5px;color:var(--nrse-deep);font-size:22px}.nrrv2-link-button{border:0;background:transparent;color:var(--nrse-deep);font-weight:800;text-decoration:underline;cursor:pointer}
/* visual-first product showcase */
.nrrv2-showcase-note{margin-top:-4px;color:var(--nrse-muted)}.nrrv2-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.nrrv2-product{position:relative;padding:8px;background:#fffdfd;border:1px solid var(--nrse-line);border-radius:20px;box-shadow:0 9px 22px var(--nrse-shadow);overflow:hidden}.nrrv2-product>button{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.nrrv2-image-frame{position:relative;width:100%;aspect-ratio:1/1;display:grid;place-items:center;padding:8px;background:linear-gradient(145deg,#fffdfd,#f0e5f8);border:1px solid rgba(74,143,176,.18);border-radius:15px;overflow:hidden}.nrrv2-image-frame img{display:block;width:100%;height:100%;object-fit:contain}.nrrv2-product h3{margin:9px 3px 5px;font-size:13px;line-height:1.45}.nrrv2-product-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 3px 4px;font-size:11px;color:var(--nrse-muted)}.nrrv2-product-meta b{color:var(--nrse-deep);font-size:14px}.nrrv2-product.is-soldout{opacity:.55}.nrrv2-product.is-soldout .nrrv2-image-frame::after{content:"SOLD OUT";position:absolute;padding:7px 11px;border-radius:999px;background:#eadff5;color:#fff;font-size:10px;font-weight:900;letter-spacing:.08em}
/* selection */
.nrrv2-cart-items{display:grid;gap:9px;margin:12px 0}.nrrv2-cart-items>div{display:flex;justify-content:space-between;gap:12px;padding:12px;background:var(--nrse-pale);border:1px solid var(--nrse-line);border-radius:14px;text-align:left}.nrrv2-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:16px 0}.nrrv2-summary span{padding:11px 7px;background:#fffdfd;border:1px solid var(--nrse-line);border-radius:13px}.nrrv2-summary b{display:block;margin-top:4px;color:var(--nrse-deep)}
/* product detail */
.nrrv2-dialog{width:min(calc(100% - 28px),560px);max-height:88vh;padding:22px;border:1px solid var(--nrse-line);border-radius:24px;background:#fffdfd;color:var(--nrse-ink);box-shadow:0 25px 65px rgba(28,16,23,.3)}.nrrv2-dialog::backdrop{background:rgba(28,16,23,.72)}.nrrv2-dialog-close{float:right;width:42px;height:42px;border:1px solid var(--nrse-line);border-radius:50%;background:#fffdfd;color:var(--nrse-deep);font-size:25px}.nrrv2-dialog>img{display:block;width:100%;max-height:300px;object-fit:contain;margin:8px auto 16px;background:var(--nrse-pale);border-radius:18px}.nrrv2-dialog h3{font-size:21px}.nrrv2-stock{font-weight:800;color:var(--nrse-deep)}.nrrv2-dialog-actions{display:flex;align-items:center;justify-content:center;gap:16px;margin:18px 0}.nrrv2-dialog-actions strong{font-size:22px;min-width:40px;text-align:center}.nrrv2-lock-note{text-align:center;color:#7C5AA0;font-weight:800}
.nrrv2-nav{display:grid;gap:10px}.nrrv2-nav a{width:100%}
@media(min-width:700px){.nrrv2-preserved{padding:32px 22px 62px}.nrrv2-preserved .nrse-panel{padding:34px 28px}.nrrv2-auth-form{grid-template-columns:1fr 1fr}.nrrv2-auth-form .nrrv2-primary{grid-column:1/-1}.nrrv2-member{grid-template-columns:repeat(3,1fr)}.nrrv2-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.nrrv2-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.nrrv2-preserved{padding-left:10px;padding-right:10px;border-radius:24px}.nrrv2-preserved .nrse-panel{padding:23px 15px}.nrrv2-preserved .nrse-track-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nrrv2-grid{gap:9px}.nrrv2-product{border-radius:17px;padding:7px}.nrrv2-product h3{font-size:12px}.nrrv2-summary{grid-template-columns:1fr}.nrrv2-summary span{display:flex;justify-content:space-between}.nrrv2-summary b{display:inline;margin:0}}
@supports not (height:100dvh){.nrrv2-preserved .nrse-card-modal .nce-card{max-height:calc(100vh - 72px)}}
@media(prefers-reduced-motion:reduce){.nrrv2-preserved *,.nrrv2-preserved *::before,.nrrv2-preserved *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* v0.2.1 CARD TEXT VISIBILITY FIX: preserve previous readable white card typography */
.nrrv2-preserved .nrse-card-modal .nce-card,
.nrrv2-preserved .nrse-card-modal .nce-card__kicker,
.nrrv2-preserved .nrse-card-modal .nce-card__title,
.nrrv2-preserved .nrse-card-modal .nce-card__body,
.nrrv2-preserved .nrse-card-modal .nce-card__message,
.nrrv2-preserved .nrse-card-modal .nce-card__message--soft,
.nrrv2-preserved .nrse-card-modal .nce-card__signature{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.22);
}
.nrrv2-preserved .nrse-card-modal .nce-card__kicker{opacity:.92;}
.nrrv2-preserved .nrse-card-modal .nce-divider-mark svg{fill:rgba(255,255,255,.86) !important;}


/* v0.2.8 — FULL ROOM SKIN / MIDNIGHT NAVY OUTER CANVAS
 * User preference: one room = one color.
 * Keep every v0.2.2 inner component unchanged.
 * Remove only the white WordPress/Cocoon "moat" around the room.
 */
html.nrrv2-40k-page-active,
body.nrrv2-40k-page-active,
body.nrrv2-40k-page-active #page,
body.nrrv2-40k-page-active .site,
body.nrrv2-40k-page-active .site-content,
body.nrrv2-40k-page-active #content,
body.nrrv2-40k-page-active #primary,
body.nrrv2-40k-page-active .content-area,
body.nrrv2-40k-page-active .site-main,
body.nrrv2-40k-page-active .entry-content,
body.nrrv2-40k-page-active .page-content,
body.nrrv2-40k-page-active .post-content,
body.nrrv2-40k-page-active .main,
body.nrrv2-40k-page-active main {
    background:#eadff5 !important;
}

/* Cocoon/theme wrappers that can leave 1–2 white side gutters */
body.nrrv2-40k-page-active .content,
body.nrrv2-40k-page-active .content-in,
body.nrrv2-40k-page-active .main-in,
body.nrrv2-40k-page-active .entry-content-wrap,
body.nrrv2-40k-page-active .article {
    background:#eadff5 !important;
}



/* v0.2.9 — MESSAGE CARD BACKGROUND GUARD
 * FULL ROOM SKIN must never repaint the NekoOne Card Engine itself.
 */
body.nrrv2-40k-page-active .nrrv2-preserved .nrse-card-modal article.nce-card,
body.nrrv2-40k-page-active .nrrv2-preserved .nrse-card-modal .nce-card {
  background:
    radial-gradient(circle at 20% 0%,rgba(255,255,255,.16),transparent 28%),
    linear-gradient(145deg,#34627a,#27485d 56%,#182c3b) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}


/* v0.2.11 shipping address uses NRSE registered address; no registration button in room */
.nrrv2-member-card small[data-address-note]{display:block;margin-top:6px;color:var(--nrse-muted);font-size:11px;line-height:1.55;font-weight:700}


/* 40K LIGHT PURPLE readability guards */
.nrrv2-preserved.nrrv2-40k .nrrv2-auth-form input,
.nrrv2-preserved.nrrv2-40k .nrrv2-dialog{
  background:#fff !important;
  color:#49375C !important;
}
.nrrv2-preserved.nrrv2-40k .nrrv2-product,
.nrrv2-preserved.nrrv2-40k .nrrv2-summary span,
.nrrv2-preserved.nrrv2-40k .nrse-track-button{
  background:#fffdfd;
  color:#eef6ff;
}
.nrrv2-preserved.nrrv2-40k .nrrv2-image-frame{
  background:linear-gradient(145deg,#f0e5f8,#0c2341);
}
.nrrv2-preserved.nrrv2-40k .nrrv2-dialog h3,
.nrrv2-preserved.nrrv2-40k .nrrv2-dialog p{
  color:#49375C;
}
.nrrv2-preserved.nrrv2-40k .nrrv2-dialog .nrrv2-stock,
.nrrv2-preserved.nrrv2-40k .nrrv2-dialog .nrrv2-lock-note{
  color:#7C5AA0;
}
body.nrrv2-40k-page-active .nrrv2-preserved .nrse-card-modal article.nce-card,
body.nrrv2-40k-page-active .nrrv2-preserved .nrse-card-modal .nce-card{
  background:
    radial-gradient(circle at 20% 0%,rgba(255,255,255,.22),transparent 28%),
    linear-gradient(145deg,#76529a,#54336f 56%,#342044) !important;
}


/* v0.1.1 — 40K TITLE GUARD
 * Cocoon/theme h2 decoration must not paint white title strips inside the midnight room.
 * Scope strictly to the 40K V2 room.
 */
body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k h1,
body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k h2,
body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k h3{
  background:transparent !important;
  background-image:none !important;
  border:0 !important;
  border-top:0 !important;
  border-right:0 !important;
  border-bottom:0 !important;
  border-left:0 !important;
  box-shadow:none !important;
  color:#eef6ff !important;
  -webkit-text-fill-color:#eef6ff !important;
}

body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k h1::before,
body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k h1::after,
body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k h2::before,
body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k h2::after,
body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k h3::before,
body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k h3::after{
  content:none !important;
  display:none !important;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
}

/* Product-dialog headings sit on a deliberately white dialog surface. */
body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k .nrrv2-dialog h3{
  color:#49375C !important;
  -webkit-text-fill-color:#49375C !important;
}


/* v0.1.2 — if the eyecatch is present, room titles can stay accessibility-only */
.nrrv2-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;clip-path:inset(50%) !important;white-space:nowrap !important;border:0 !important;}
body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k[data-room-titles="hidden"] .nrrv2-auth-head{justify-content:flex-end;}
body.nrrv2-40k-page-active .nrrv2-preserved.nrrv2-40k[data-room-titles="hidden"] .nrse-hero p:last-child{margin-top:0;}


/* 40K LIGHT PURPLE readability guards */
.nrrv2-preserved.nrrv2-40k .nrse-panel{
  background:rgba(255,255,255,.90);
}
.nrrv2-preserved.nrrv2-40k .nrrv2-product,
.nrrv2-preserved.nrrv2-40k .nrrv2-summary span,
.nrrv2-preserved.nrrv2-40k .nrse-track-button{
  background:#fff;
  color:#49375C;
}
.nrrv2-preserved.nrrv2-40k .nrrv2-image-frame{
  background:linear-gradient(145deg,#fff,#f1e7f9);
}
.nrrv2-preserved.nrrv2-40k .nrrv2-auth-form input,
.nrrv2-preserved.nrrv2-40k .nrrv2-dialog{
  background:#fff !important;
  color:#49375C !important;
}
.nrrv2-preserved.nrrv2-40k .nrrv2-dialog h3,
.nrrv2-preserved.nrrv2-40k .nrrv2-dialog p{
  color:#49375C !important;
}


/* v0.1.1 — 40K PRODUCT CARD CONTRAST FIX
 * Keep the room itself light purple.
 * Darken ONLY product cards so product names / stock / 40K are clearly readable.
 */
body.nrrv2-40k-page-active
.nrrv2-preserved.nrrv2-40k
.nrrv2-product{
  background:
    linear-gradient(180deg,#7a56a0 0%,#654486 100%) !important;
  border-color:rgba(255,255,255,.38) !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(65,37,92,.22) !important;
}

body.nrrv2-40k-page-active
.nrrv2-preserved.nrrv2-40k
.nrrv2-product h3{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  text-shadow:0 1px 2px rgba(45,22,65,.25) !important;
}

body.nrrv2-40k-page-active
.nrrv2-preserved.nrrv2-40k
.nrrv2-product-meta{
  color:#f3e9ff !important;
}

body.nrrv2-40k-page-active
.nrrv2-preserved.nrrv2-40k
.nrrv2-product-meta b{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

body.nrrv2-40k-page-active
.nrrv2-preserved.nrrv2-40k
.nrrv2-image-frame{
  background:
    linear-gradient(145deg,#fff 0%,#efe5f8 100%) !important;
  border-color:rgba(255,255,255,.48) !important;
}

/* SOLD OUT badge remains strong on the darker card. */
body.nrrv2-40k-page-active
.nrrv2-preserved.nrrv2-40k
.nrrv2-product.is-soldout .nrrv2-image-frame::after{
  background:#4a2d64 !important;
  color:#fff !important;
}
