/* 2026.10 — LAST SWEET PARTY / チケット体験デザイン
   展開領域は必ず各ticket-entryに含まれ、別の場所へ飛ばない。 */
.ticket-stage {
  isolation:isolate;
  overflow:hidden;
  padding: 88px max(3.5vw, 16px) 85px;
  color:#fff;
  background: radial-gradient(ellipse at 50% 2%,#f86bcb 0%,#92307f 37%,#2b0b55 73%,#100b2d 100%);
}
.ticket-stage::before {
  z-index:-2;inset:0;opacity:.57;
  background:linear-gradient(180deg,#7b216db0 0%,#270b537d 70%,#130725bf 100%),url('./assets/stage-3.webp') center / cover;
  filter:saturate(1.6) blur(7px);
}
.ticket-stage::after{
  z-index:-1; inset:0;pointer-events:none;
  background:radial-gradient(circle at 2% 14%,#ff9de766 0 1px,transparent 2px),
             radial-gradient(circle at 79% 32%,#fff7 0 1px,transparent 2px),
             radial-gradient(ellipse at 51% 22%,#ffcdf76a,transparent 68%);
  background-size:97px 141px,131px 101px,100% 100%;opacity:.9;
}
.ticket-heading{margin:0 0 45px;position:relative;z-index:1}
.ticket-heading h2 {
  font:900 clamp(34px,5vw,61px) 'Zen Maru Gothic',sans-serif;
  letter-spacing:.15em;
  color:#fff9ff;
  text-shadow:0 4px 0 #bc226d,0 0 8px #f525ad,0 0 27px #ff9ae9;
}
.ticket-heading p{color:#fff3fb;text-shadow:0 2px 6px #500a55;font-weight:700;font-size:clamp(11px,1.2vw,14px)}
.ticket-showcase{
  position:relative;z-index:2;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
  gap:clamp(12px,1.7vw,24px);
  max-width:1280px;
  margin:0 auto;
}
.ticket-entry {
  --accent:#ff4eae;--tone-pale:#ffe1f5;--tone-deep:#a91579;
  display:block;min-width:0;overflow:hidden;
  position:relative;
  border:1px solid #ffbde9;
  border-radius:10px 10px 13px 13px;
  background:#180d37;
  box-shadow:0 4px 4px #17072b63,0 16px 33px #100522aa,0 0 22px #e73ba64f;
  transition:box-shadow .4s,border-color .4s,transform .4s;
}
.ticket-entry-s {--accent:#80c6ff;--tone-pale:#c8eaff;--tone-deep:#245ebc;border-color:#8ec9ff;box-shadow:0 4px 4px #17072b63,0 16px 33px #100522aa,0 0 22px #579efa4a}
.ticket-entry-general{--accent:#c4a2ff;--tone-pale:#ede0ff;--tone-deep:#7259b3;border-color:#d1b8fa;box-shadow:0 4px 4px #17072b63,0 16px 33px #100522aa,0 0 22px #c78ff355}
.ticket-entry::before {
  content:'';position:absolute;z-index:2;inset:7px 7px auto;
  height:50px;border:1px solid #fff5;border-bottom:0;border-radius:4px 4px 0 0;pointer-events:none;
}
.ticket-entry.expanded {border-color:var(--tone-pale);box-shadow:0 0 0 2px #ffffff42,0 15px 55px #120126bf,0 0 30px var(--accent)}
.ticket-invite,
.ticket-entry .ticket-invite,
.ticket-entry:nth-child(2) .ticket-invite,
.ticket-entry:nth-child(3) .ticket-invite {
  position:relative;
  display:block;
  margin:0;
  min-height:355px;
  width:100%;
  padding:0;
  border:0;
  text-align:center;
  isolation:isolate;
  background:#221348;
  box-shadow:none;
  transform:none!important;
  transition:none;
  overflow:hidden;
}
.ticket-entry .ticket-invite:hover {transform:none!important;box-shadow:none}
.ticket-entry .ticket-photo {
  position:absolute;
  inset:0;
  z-index:-2;
  filter:contrast(1.09) saturate(1.4);
  background-image:linear-gradient(0deg,#250632e8 0%,#2d0b3880 47%,#100b3260 94%),var(--ticketimage);
  background-position:center;
  background-size:cover;
  transform:scale(1.03);
  transition:transform .85s cubic-bezier(.2,.7,.2,1);
}
.ticket-entry:hover .ticket-photo,.ticket-entry.expanded .ticket-photo {transform:scale(1.09)}
.ticket-entry .ticket-cover-glint {position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% -15%,#fff7 0%,transparent 63%),linear-gradient(125deg,transparent 20%,#fff2 30%,transparent 39%);mix-blend-mode:screen}
.ticket-entry .ticket-body,
.ticket-entry.invite-blue .ticket-body,
.ticket-entry.invite-violet .ticket-body {
  position:relative;
  display:flex;
  width:100%;
  min-height:355px;
  inset:auto;
  justify-content:flex-end;
  align-items:center;
  flex-direction:column;
  padding:70px 15px 0;
  color:#fff;
  text-shadow:0 2px 7px #160a34;
  background:none;
}
.ticket-entry .ticket-tier {
  display:inline-block;
  position:relative;
  font:900 clamp(18px,2.1vw,29px)/1.4 'Zen Maru Gothic',sans-serif;
  color:#fff;
  letter-spacing:.06em;
  text-shadow:0 2px 5px #1f0c38,0 0 12px var(--accent);
}
.ticket-entry .ticket-tier::after {content:'';display:block;height:1px;width:66%;margin:7px auto;background:var(--tone-pale);box-shadow:0 0 10px var(--accent)}
.ticket-entry .ticket-price {
  font:900 clamp(42px,4.5vw,65px)/1.22 'DM Sans',sans-serif;
  letter-spacing:-.047em;
  color:#fff;
  text-shadow:1px 3px 0 var(--tone-deep),0 0 25px var(--accent),0 2px 4px #1b062b;
}
.ticket-entry .ticket-price small {font:900 15px 'Noto Sans JP',sans-serif;margin-left:5px}
.ticket-entry .ticket-phrase {margin:7px 0 25px;line-height:1.6;font:800 13px 'Zen Maru Gothic',sans-serif;color:#fff7fc;text-shadow:0 2px 8px #21053b}
.ticket-entry .ticket-expand{
  display:flex;align-items:center;justify-content:center;gap:14px;
  position:relative;z-index:4;
  padding:0 10px;
  margin:0;
  width:100%;min-height:58px;
  border:0;
  border-top:1px solid #fff5;
  font:900 13px 'Zen Maru Gothic',sans-serif;
  letter-spacing:.08em;
  color:#fff;
  background:linear-gradient(90deg,rgba(69,15,82,.9),var(--tone-deep) 42%,rgba(69,15,82,.96));
  transition:filter .2s,background .2s;
}
.ticket-entry .ticket-expand:hover {filter:brightness(1.18)}
.ticket-entry .ticket-expand:focus-visible {outline:3px solid #fff;outline-offset:-5px}
.ticket-plus {width:20px;height:20px;position:relative;display:block;flex:0 0 auto;border:1px solid #fff9;border-radius:50%;transition:transform .35s;box-shadow:0 0 7px #fff4}
.ticket-plus::before,.ticket-plus::after {content:'';position:absolute;background:#fff;left:5px;right:5px;top:9px;height:1px}
.ticket-plus::after {transform:rotate(90deg)}
.ticket-entry.expanded .ticket-plus {transform:rotate(45deg)}
.ticket-entry .ticket-reveal {
  display:grid;
  position:relative;
  grid-template-rows:0fr;
  visibility:hidden;
  opacity:0;
  transition:grid-template-rows .54s cubic-bezier(.23,.8,.24,1),opacity .45s,visibility .54s;
}
.ticket-entry.expanded .ticket-reveal {grid-template-rows:1fr;visibility:visible;opacity:1}
.ticket-reveal-clip {min-height:0;overflow:hidden}
.experience {position:relative;width:100%;isolation:isolate;background:#180c38;color:#fff}
.experience::before {content:'';pointer-events:none;position:absolute;z-index:3;inset:0;border-left:7px solid #ffffff11;border-right:7px solid #ffffff11}
.experience-spotlight {
  height:243px;
  position:relative;
  isolation:isolate;
  padding:24px 23px 30px;
  display:flex;flex-direction:column;
  align-items:flex-start;justify-content:flex-end;
  overflow:hidden;
  background:linear-gradient(180deg,#100b23b0 0%,#190b3070 34%,#210626ef 100%),var(--detailphoto) center / cover;
}
.experience-spotlight::before {content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 58% 0%,var(--accent),transparent 60%);opacity:.35;mix-blend-mode:screen}
.experience-spotlight::after {content:'';height:2px;position:absolute;bottom:0;left:7%;right:7%;background:linear-gradient(90deg,transparent,var(--accent),#fff,transparent);box-shadow:0 0 12px var(--accent)}
.experience-overline {display:block;color:#fff5ff;font-size:10px;font-weight:800;letter-spacing:.14em;text-shadow:0 1px 6px #190829}
.experience-spotlight h3 {position:relative;max-width:100%;margin:11px 0 13px;font:900 clamp(21px,2.25vw,29px)/1.45 'Zen Maru Gothic',sans-serif;text-shadow:0 3px 12px #0b081e,0 0 24px var(--accent);letter-spacing:.04em}
.experience-spotlight-mark {display:inline-block;padding:7px 15px 8px;position:relative;transform:rotate(-2deg);background:linear-gradient(100deg,#fff5fd,#fce1f5);color:var(--tone-deep);font:900 14px 'Zen Maru Gothic',sans-serif;box-shadow:4px 4px 0 #19062b98}
.ticket-entry-s .experience-spotlight-mark {background:#dff5ff}
.ticket-entry-general .experience-spotlight-mark {background:#f0e6ff}
.experience-story {position:relative;min-height:265px;padding:27px clamp(20px,2.5vw,32px) 32px;overflow:hidden;background:radial-gradient(circle at 110% 0%,color-mix(in srgb,var(--accent) 30%,transparent),transparent 65%),linear-gradient(170deg,#28124d,#180c34 88%)}
.story-scribble {font:800 10px 'Zen Maru Gothic',sans-serif;letter-spacing:.13em;color:var(--tone-pale);opacity:.9}
.experience-story h4 {position:relative;margin:14px 0 15px;font:900 clamp(22px,2vw,28px)/1.55 'Zen Maru Gothic',sans-serif;letter-spacing:.035em;color:#fff;text-shadow:0 0 17px var(--accent)}
.experience-story h4::after {content:'';display:block;margin:17px 0;width:55px;height:2px;background:var(--accent);box-shadow:0 0 10px var(--accent)}
.experience-story p {position:relative;font:600 12px/2.1 'Noto Sans JP',sans-serif;letter-spacing:.025em;margin:0;color:#f6edf9}
.experience-memory {position:relative;padding:42px clamp(20px,2.5vw,31px) 34px;overflow:hidden;background:linear-gradient(145deg,#efc5f2 0%,#f4d8f4 38%,#d0b8ed 100%);color:#5e2461}
.ticket-entry-s .experience-memory {background:linear-gradient(145deg,#b9dafa,#d9f1ff 37%,#bcdaf8);color:#16477f}
.experience-memory::before {content:'';position:absolute;top:-1px;left:0;right:0;height:26px;background:#180c34;clip-path:polygon(0 0,100% 0,100% 60%,92% 41%,83% 61%,75% 42%,64% 62%,55% 38%,44% 64%,32% 39%,23% 62%,12% 35%,0 65%)}
.memory-mini-label {font-weight:900;font-size:10px;letter-spacing:.13em;opacity:.8}
.experience-memory h4 {margin:12px 0;font:900 clamp(21px,2vw,27px)/1.52 'Zen Maru Gothic',sans-serif;text-shadow:0 2px 0 #fff8}
.experience-memory p {margin:0 0 26px;font:700 12px/2 'Noto Sans JP',sans-serif;letter-spacing:.02em}
.memory-display {display:grid;grid-template-columns:1fr .82fr;gap:9px;align-items:end}
.memory-signature,.memory-pass {min-width:0;padding:16px 8px;box-shadow:3px 7px 15px #29143f2c;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:94px;text-align:center}
.memory-signature {transform:rotate(-3deg);border:2px solid #fff;outline:1px solid #e54d98;background:linear-gradient(130deg,#fffdf7,#ffd9ee)}
.ticket-entry-s .memory-signature {outline-color:#71bdf5;background:linear-gradient(130deg,#fff,#e1f4ff)}
.memory-signature span {font:800 10px 'Zen Maru Gothic',sans-serif;letter-spacing:.03em}
.memory-signature strong {font:900 17px/1.4 'Zen Maru Gothic',sans-serif;white-space:nowrap}
.memory-pass {position:relative;transform:rotate(3deg);color:#fff;background:linear-gradient(135deg,#d8308b,#91206f);border:1px dashed #ffb4e3;outline:4px solid #b52587}
.ticket-entry-s .memory-pass {background:linear-gradient(135deg,#569cfa,#245fba);border-color:#c5e9ff;outline-color:#387acd}
.memory-pass::before,.memory-pass::after {content:'';position:absolute;width:12px;height:12px;background:#e7ceec;border-radius:50%;left:-7px;top:calc(50% - 6px)}
.memory-pass::after {left:auto;right:-7px}
.memory-pass span {font:900 10px 'Noto Sans JP',sans-serif;letter-spacing:.06em}
.memory-pass strong {font:900 35px 'DM Sans',sans-serif;line-height:1.4}
.memory-pass small {font:900 10px 'Noto Sans JP',sans-serif;margin-left:3px}
.experience-ending {position:relative;padding:25px 25px 30px;display:flex;flex-direction:column;align-items:center;gap:11px;background:radial-gradient(ellipse at 50% 0%,#6f1e75,#210d3c 75%);color:#fff}
.experience-ending::before {content:'';position:absolute;top:0;left:9%;right:9%;height:1px;background:linear-gradient(90deg,transparent,#ffb4e5,transparent)}
.experience-ending p{display:flex;justify-content:center;gap:14px;margin:0;font:700 10px 'DM Sans',sans-serif;letter-spacing:.12em;opacity:.85}
.experience-ending strong {font:900 36px/1.1 'DM Sans',sans-serif;text-shadow:0 0 12px var(--accent)}
.experience-ending strong small {font:900 13px 'Noto Sans JP',sans-serif;margin-left:5px}
.experience-pending {border:1px solid #e8b7e070;padding:9px 10px;color:#efd9ef;font:600 10px/1.8 'Noto Sans JP',sans-serif;text-align:center}
.experience-purchase {display:flex;justify-content:center;gap:20px;align-items:center;background:linear-gradient(90deg,var(--tone-deep),var(--accent));border:1px solid #fff9;box-shadow:0 0 16px var(--accent);padding:12px 20px;border-radius:50px;font-size:13px;font-weight:900}
.ticket-entry-general .experience-story {min-height:235px}
.ticket-entry-general .experience-spotlight {height:245px}
.ticket-info {color:#fff1fa;font-weight:600;font-size:11px;letter-spacing:.05em;text-shadow:0 2px 8px #230b41;margin-top:30px}
@media (max-width:980px) and (min-width:581px){
  .ticket-showcase {gap:11px}
  .ticket-entry .ticket-invite,.ticket-entry .ticket-body {min-height:310px}
  .ticket-entry .ticket-price {font-size:clamp(30px,4.6vw,51px)}
  .ticket-entry .ticket-tier {font-size:clamp(17px,2vw,22px)}
  .ticket-entry .ticket-phrase {font-size:11px}
  .experience-story,.experience-memory {padding-left:17px;padding-right:17px}
  .experience-story p,.experience-memory p {font-size:11px}
  .memory-display {grid-template-columns:1fr;gap:15px}
  .experience-spotlight h3 {font-size:22px}
}
@media (max-width:580px){
  .ticket-stage {padding:76px 16px 85px}
  .ticket-heading {margin-bottom:28px}
  .ticket-heading h2 {font-size:39px}
  .ticket-showcase {grid-template-columns:1fr;gap:29px;max-width:440px}
  .ticket-entry {border-radius:9px;}
  .ticket-entry .ticket-invite,.ticket-entry .ticket-body{min-height:303px}
  .ticket-entry .ticket-body {padding:55px 12px 0}
  .ticket-entry .ticket-tier {font-size:24px}
  .ticket-entry .ticket-price {font-size:58px}
  .ticket-entry .ticket-phrase {font-size:12px;margin-bottom:21px}
  .ticket-entry .ticket-expand {min-height:61px;font-size:13px}
  .experience-spotlight {height:240px;padding:24px 24px 28px}
  .experience-spotlight h3 {font-size:27px}
  .experience-story {min-height:240px;padding:30px 24px 35px}
  .experience-story h4 {font-size:25px}
  .experience-story p {font-size:12px;line-height:2.05}
  .experience-memory {padding:42px 23px 37px}
  .experience-memory h4 {font-size:25px}
  .experience-memory p {font-size:12px}
  .memory-display {gap:13px}
  .memory-signature strong {font-size:17px}
  .experience-ending {padding:27px 23px 29px}
}
@media (prefers-reduced-motion:reduce){
 .ticket-entry,.ticket-entry .ticket-reveal,.ticket-entry .ticket-photo,.ticket-plus {transition:none!important}
}

/* v98: tighten ticket section after removal of demo disclaimer */
.ticket-stage{padding-bottom:clamp(44px,5vw,65px)!important}
