/* ===== 積分兌換 ===== */
.rewards-page{
  min-height:100vh;color:var(--paper);
  background:
    radial-gradient(circle at 12% 8%,rgba(75,222,231,.12),transparent 28rem),
    radial-gradient(circle at 88% 18%,rgba(255,104,45,.14),transparent 30rem),
    var(--night);
}
.rewards-page *{box-sizing:border-box}
.rewards-topbar{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:12px clamp(16px,4vw,52px);background:rgba(14,17,37,.94);
  border-bottom:3px solid var(--night-3);backdrop-filter:blur(14px);
}
.rewards-topbar .brand{text-decoration:none}
.rewards-top-actions{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}
.rewards-top-actions a{text-decoration:none}
.rewards-page main{max-width:1280px;margin:0 auto;padding:0 clamp(16px,4vw,52px) 80px}
.rewards-hero{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:42px;
  align-items:center;min-height:480px;padding:68px 0 52px;border-bottom:2px dashed var(--night-3);
}
.rewards-hero h1{margin:8px 0 18px;font-size:clamp(46px,8vw,88px);line-height:.92}
.rewards-hero-copy>p:last-child{max-width:650px;color:var(--muted);font-size:17px;line-height:1.8}
.reward-balance-card{
  padding:28px;border:3px solid var(--orange);border-radius:22px;
  background:linear-gradient(150deg,var(--night-2),var(--night-1));
  box-shadow:0 18px 50px rgba(0,0,0,.35),var(--glow-orange);
}
.reward-balance-card small{font-weight:900;letter-spacing:.16em;color:var(--muted)}
.reward-balance-card strong{
  display:block;margin:8px 0 2px;font-family:var(--font-head);font-size:64px;line-height:1;color:var(--yellow);
  text-shadow:var(--glow-yellow);
}
.reward-balance-card span{display:block;margin-bottom:18px;color:var(--muted);font-size:13px}
.reward-balance-card a{text-decoration:none}
.rewards-section{padding:52px 0;border-bottom:2px dashed var(--night-3)}
.rewards-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}
.rewards-section-head h2{margin:3px 0 0}
.rewards-section-head>p{max-width:420px;margin:0;color:var(--muted);text-align:right}
.reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.reward-loading{grid-column:1/-1;padding:40px;text-align:center;color:var(--muted)}
.reward-coming-soon{
  grid-column:1/-1;display:grid;place-items:center;min-height:330px;padding:40px;
  border:3px dashed var(--night-3);border-radius:22px;text-align:center;
  background:linear-gradient(145deg,rgba(31,36,70,.8),rgba(20,23,42,.85));
}
.reward-coming-soon strong{display:block;font-family:var(--font-head);font-size:clamp(42px,8vw,78px);color:var(--yellow)}
.reward-coming-soon span{max-width:520px;color:var(--muted);font-size:15px}
.reward-card{
  min-width:0;overflow:hidden;border:3px solid var(--night-3);border-radius:18px;background:var(--night-2);
  box-shadow:var(--shadow);transition:.2s ease;
}
.reward-card:hover{transform:translateY(-4px);border-color:var(--orange)}
.reward-card-media{
  position:relative;aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden;background:var(--night-1);
}
.reward-card-media img{width:100%;height:100%;object-fit:cover}
.reward-no-image{font-family:var(--font-head);font-size:28px;color:var(--muted)}
.reward-stock-badge{
  position:absolute;right:10px;top:10px;padding:5px 9px;border-radius:999px;
  background:rgba(14,17,37,.88);color:var(--cream);font-size:11px;font-weight:900;
}
.reward-photo-count{position:absolute;left:10px;bottom:10px;padding:4px 8px;border-radius:8px;background:rgba(14,17,37,.82);font-size:11px}
.reward-card-body{padding:18px}
.reward-card-body h3{margin:0 0 7px;font-size:21px}
.reward-card-body p{min-height:46px;margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.65}
.reward-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.reward-cost{display:grid}
.reward-cost strong{font-family:var(--font-head);font-size:25px;color:var(--yellow)}
.reward-cost small{color:var(--muted)}
.reward-card-footer .btn{flex:none}
.reward-card.sold-out{opacity:.72}
.reward-card.sold-out .reward-card-media{filter:grayscale(.65)}
.reward-history{display:grid;gap:10px}
.reward-history-item{
  display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;
  border:2px solid var(--night-3);border-radius:13px;background:var(--night-2);
}
.reward-history-item small{display:block;color:var(--muted)}
.reward-status{flex:none;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900}
.reward-status.pending{background:rgba(255,198,61,.15);color:var(--yellow)}
.reward-status.fulfilled{background:rgba(83,215,155,.14);color:#76edb5}
.reward-status.cancelled{background:rgba(255,105,96,.14);color:#ff938b}
.reward-modal{max-width:760px}
.reward-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:18px}
.reward-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border:2px solid var(--night-3);border-radius:10px}
.reward-redeem-summary{
  display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin:18px 0;padding:14px;
  border:2px solid var(--night-3);border-radius:12px;background:rgba(10,13,31,.35);
}
.reward-redeem-summary label{display:grid;gap:6px;font-size:13px;font-weight:800}
.reward-redeem-summary input{width:100%;min-width:0}
.reward-redeem-total{text-align:right}
.reward-redeem-total strong{display:block;font-family:var(--font-head);font-size:26px;color:var(--yellow)}
.rewards-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1280px;margin:0 auto;padding:26px clamp(16px,4vw,52px);color:var(--muted)}
.rewards-footer a{color:var(--cream);font-weight:800;text-decoration:none}
.rewards-footer p{margin:0;font-size:12px;text-align:right}

@media(max-width:900px){
  .reward-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .rewards-topbar{padding:10px 12px}
  .rewards-topbar .brand-logo{width:46px;height:46px}
  .rewards-topbar .brand-text strong{font-size:14px}
  .rewards-top-actions span{display:none}
  .rewards-page main{padding:0 12px 56px}
  .rewards-hero{grid-template-columns:minmax(0,1fr);gap:26px;min-height:0;padding:46px 4px 34px}
  .rewards-hero h1{font-size:54px}
  .reward-balance-card{padding:21px}
  .reward-balance-card strong{font-size:52px}
  .rewards-section{padding:36px 4px}
  .rewards-section-head{align-items:flex-start;flex-direction:column}
  .rewards-section-head>p{text-align:left}
  .reward-grid{grid-template-columns:minmax(0,1fr)}
  .reward-card-body p{min-height:0}
  .reward-history-item{align-items:flex-start;flex-direction:column}
  .reward-redeem-summary{grid-template-columns:minmax(0,1fr)}
  .reward-redeem-total{text-align:left}
  .rewards-footer{align-items:flex-start;flex-direction:column}
  .rewards-footer p{text-align:left}
}
