/* HAEBOM v4.9 / PRINTED MOMENTS — reusable horizontal commemorative ticket. */
/* Typography and identity are intentionally independent of photo presence. */
#experience-list.cards:not(.list-mode){display:grid;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:start;gap:18px;}
#experience-list .v49-ticket,
#tab-home .v42-home-completed .v49-ticket{
  --ticket-paper:#f0e5e7;--ticket-ink:#846677;--ticket-dark:#493541;
  position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,39%) minmax(0,61%);
  min-width:0;min-height:174px;aspect-ratio:1.88/1;width:100%;overflow:visible;
  background:#fffdfa;border:1px solid #ded5d9;border-radius:14px;
  box-shadow:0 2px 3px rgba(67,41,57,.025),0 13px 24px rgba(79,51,64,.055);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
#experience-list .v49-ticket:hover,#tab-home .v49-ticket:hover{transform:translateY(-2px);border-color:#c7b7c0;box-shadow:0 3px 5px rgba(67,41,57,.025),0 16px 29px rgba(79,51,64,.085)}
.v49-ticket:focus-within{outline:3px solid #806174;outline-offset:4px}
.v49-ticket-visual{position:relative;isolation:isolate;min-width:0;overflow:hidden;border-radius:13px 0 0 13px;background:var(--ticket-paper);border-right:1px solid #dfd6d9}
.v49-ticket-visual::after{content:"";position:absolute;inset:0;border:7px solid rgba(255,255,255,.16);pointer-events:none;z-index:1}
.v49-ticket-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.v49-is-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(35,28,33,.12),transparent 46%);z-index:1;pointer-events:none}
.v49-photo-count{position:absolute;left:9px;bottom:10px;z-index:2;padding:3px 7px;border-radius:8px;background:#fffef6dc;color:#4b4045;font-size:10px;font-weight:700;backdrop-filter:blur(3px)}
.v49-ticket-artwork{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center;color:var(--ticket-ink);
  background-image:radial-gradient(circle at 105% 13%,rgba(255,255,255,.76) 0 20%,transparent 21%),linear-gradient(137deg,rgba(255,255,255,.45),transparent 56%),linear-gradient(0deg,var(--ticket-paper),var(--ticket-paper));}
.v49-ticket-artwork::before{content:"";position:absolute;left:-10%;top:25%;width:120%;height:54%;border:1px solid rgba(88,65,80,.10);border-radius:50%;transform:rotate(-20deg);pointer-events:none}
.v49-ticket-artwork svg{width:min(85%,162px);height:72%;max-height:140px;position:relative;z-index:1;opacity:.96;overflow:visible}
.v49-art-type{position:absolute;left:12px;top:12px;z-index:2;max-width:95%;letter-spacing:.16em;font-size:8px;font-weight:820;color:var(--ticket-ink);opacity:.84}
.v49-art-flourish{position:absolute;right:12px;bottom:14px;width:16px;height:16px;border:1px solid currentColor;border-radius:2px;transform:rotate(-18deg);opacity:.25;z-index:1}
.v49-art-flourish::after{content:"";position:absolute;inset:3px;border:1px solid currentColor;border-radius:1px}
.v49-ticket-content{position:relative;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:5px;padding:16px 18px 14px 20px;background:transparent}
.v49-ticket-content::before,.v49-ticket-content::after{content:"";position:absolute;z-index:4;left:-9px;width:16px;height:16px;border-radius:50%;background:#fbfaf8;border:1px solid #ded5d9;pointer-events:none}
.v49-ticket-content::before{top:-9px}.v49-ticket-content::after{bottom:-9px}
.v49-ticket-eyebrow{display:flex;align-items:center;gap:7px;justify-content:space-between;min-width:0}
.v49-ticket-brand{font-size:9px;letter-spacing:.15em;font-weight:800;color:#8f7c85}
.v49-ticket-category{display:inline-flex;align-items:center;max-width:70%;border:1px solid rgba(127,96,116,.18);border-radius:5px;color:var(--ticket-ink);background:color-mix(in srgb,var(--ticket-paper) 35%,white);padding:4px 8px;font-size:10px;font-weight:750;line-height:1.15;white-space:nowrap}
.v49-ticket-copy{min-width:0;align-self:stretch;margin:auto 0;display:flex;flex-direction:column;gap:5px}
#experience-list .v49-ticket-title,#tab-home .v49-ticket-title{font-size:clamp(15px,1.8vw,20px)!important;line-height:1.32!important;letter-spacing:-.055em;color:#342e34;font-weight:820;margin:0;word-break:keep-all;overflow-wrap:anywhere}
.v49-ticket-note{font-size:11px;line-height:1.45;color:#948790;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin:0}
.v49-ticket-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:6px;padding-top:9px;border-top:1px dashed #e5dcdf;min-width:0}
.v49-ticket-footer time{font-size:10px;line-height:1.3;color:#817880;white-space:nowrap;font-variant-numeric:tabular-nums}
.v49-ticket-seal{font-size:10px;line-height:1.3;letter-spacing:-.02em;color:#79566d;white-space:nowrap;font-weight:790}
.v49-ticket-open{position:absolute;inset:0;z-index:5;border:0;background:transparent;cursor:pointer;border-radius:14px;width:100%;height:100%;padding:0}
.v49-ticket-open:focus-visible{outline:0}
.v49-theme-travel{--ticket-paper:#e8e8f3;--ticket-ink:#6e658e}
.v49-theme-food{--ticket-paper:#f4e9e2;--ticket-ink:#9b6c58}
.v49-theme-health{--ticket-paper:#efdee6;--ticket-ink:#8d5d78}
.v49-theme-learning{--ticket-paper:#eae7f2;--ticket-ink:#70658e}
.v49-theme-work{--ticket-paper:#e3e1ed;--ticket-ink:#625c84}
.v49-theme-finance{--ticket-paper:#f1e8df;--ticket-ink:#916e5d}
.v49-theme-culture{--ticket-paper:#eddce8;--ticket-ink:#855b7a}
.v49-theme-hobby{--ticket-paper:#e9e2ee;--ticket-ink:#7f6093}
.v49-theme-relationship{--ticket-paper:#f5e2e6;--ticket-ink:#9a617a}
.v49-theme-life{--ticket-paper:#ede5e0;--ticket-ink:#8e7169}
.v49-theme-society{--ticket-paper:#e4e7ed;--ticket-ink:#656a85}
.v49-theme-mind{--ticket-paper:#efe3ec;--ticket-ink:#906d90}
.v49-theme-other{--ticket-paper:#ebe7e6;--ticket-ink:#81737d}
/* More subject-specific treatments without fake stock imagery. */
.v49-ticket-artwork[data-motif="web"]{background-image:linear-gradient(160deg,#f5f1f9 0%,#e1dcea 100%)}
.v49-ticket-artwork[data-motif="web"]::before{border-radius:16px;transform:rotate(-8deg);width:58%;height:63%;left:28%;top:24%}
.v49-ticket-artwork[data-motif="running"]{background-image:linear-gradient(150deg,#f8e6e7,#ebdbe7)}
.v49-ticket-artwork[data-motif="running"]::before{transform:rotate(-24deg);top:5%}
.v49-ticket-artwork[data-motif="home"]{background-image:linear-gradient(145deg,#f4eee7,#e7dcd7)}
.v49-ticket-artwork[data-motif="culture"]{background-image:linear-gradient(158deg,#f3e2ed,#e0d5e6)}
.v49-ticket-artwork[data-motif="finance"]{background-image:linear-gradient(158deg,#f6e9dc,#efe1d2)}
.v49-ticket-artwork[data-motif="learn"]{background-image:linear-gradient(158deg,#f1eaf4,#e4def0)}
.v49-ticket-artwork[data-motif="travel"]{background-image:linear-gradient(158deg,#f0e9f6,#e0e6f4)}

/* Deterministic print-layout variation for different experiences within one category. */
.v49-variant-1 .v49-ticket-artwork::before{transform:rotate(16deg);top:18%;left:-17%;height:68%;border-style:dashed;opacity:.85}
.v49-variant-1 .v49-ticket-artwork svg{transform:translateY(4px) rotate(-2deg)}
.v49-variant-2 .v49-ticket-artwork::before{left:29%;top:-17%;height:116%;width:58%;transform:rotate(14deg);border-radius:14px}
.v49-variant-2 .v49-ticket-artwork svg{transform:translateX(-2px) rotate(3deg)}
.v49-variant-3 .v49-ticket-artwork::before{left:-19%;top:53%;width:145%;height:38%;transform:rotate(-14deg)}
.v49-variant-3 .v49-art-flourish{right:16px;bottom:27px;transform:rotate(17deg)}
/* Home now uses exactly the same ticket family as the archive. */
#tab-home .v42-home-completed .quiet-recent-gallery{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:auto!important;gap:13px!important;align-items:start}
#tab-home .v42-home-completed .v49-ticket{min-height:160px;grid-column:auto!important;grid-row:auto!important}
#tab-home .v42-home-completed .quiet-recent-gallery.v37-has-only-one .v49-ticket{grid-column:1/-1!important;max-width:570px}
/* Gallery's timeline remains as a separate text-first view. */
#experience-list.list-mode{display:block}
/* A compact, physical gacha machine precedes the catalogue instead of appearing after it. */
#tab-discover .v49-capsule-details{margin:12px 0 26px;overflow:visible;background:#fffdfa;border:1px solid #e5dce0;border-radius:20px;box-shadow:0 7px 26px rgba(69,48,61,.045)}
#tab-discover .v49-capsule-details>summary{display:flex;gap:13px;align-items:center;list-style:none;padding:17px 20px;font-size:15px;color:#433640;font-weight:780;border-radius:18px;cursor:pointer}
#tab-discover .v49-capsule-details>summary::after{content:'⌄';margin-left:auto;float:none;font-size:22px;font-weight:400;color:#9a8090}
#tab-discover .v49-capsule-details[open]>summary::after{content:'⌃'}
#tab-discover .v49-capsule-details>summary small{display:block;font-size:11px;color:#94838c;font-weight:480;margin-top:4px}
.v49-summary-symbol{display:grid;place-items:center;width:40px;height:40px;background:#efe4eb;border:1px solid #e3d6df;color:#7a5b73;border-radius:13px;font-size:17px}
.v49-capsule-content{padding:0 17px 17px!important}
#tab-discover .v49-capsule-details .capsule-stage{min-height:292px!important;display:flex;flex-direction:column;justify-content:center;gap:4px;position:relative;overflow:hidden;border:1px solid #f0e7eb;background:radial-gradient(ellipse at 50% 86%,#f3edf2,#faf7f9 68%);border-radius:17px}
#tab-discover .v49-capsule-details .capsule-machine{position:relative;flex-shrink:0;width:180px;height:209px;margin:0 auto 16px;filter:drop-shadow(6px 12px 9px rgba(83,57,78,.16));transform:none!important;opacity:1;transition:opacity .3s ease}
#tab-discover .v49-capsule-details .machine-window{inset:0 3px 60px;border:9px solid #a991ad;border-bottom-width:14px;background:linear-gradient(140deg,#f4edf4,#d6c9d8);border-radius:90px 90px 25px 25px}
#tab-discover .v49-capsule-details .machine-base{height:74px;left:14px;right:14px;bottom:2px;border-radius:10px 10px 22px 22px;background:linear-gradient(130deg,#8d758d,#66516d);font-size:10px;padding:43px 13px 0}
#tab-discover .v49-capsule-details .mini-one{background:#b79ebf}.mini-two{background:#e2b9c0}.mini-three{background:#d5bad2}.mini-four{background:#b0a5cc}
#tab-discover .v49-capsule-details .machine-knob{right:22px;top:10px;width:39px;height:39px;border-color:#d8c4d3}
.machine-handle{position:absolute;z-index:3;width:39px;height:39px;bottom:26px;right:36px;border-radius:50%;border:2px solid #e2d5df;background:linear-gradient(145deg,#faf5f8,#b9a7bc);box-shadow:inset -3px -4px 8px #725c7755,0 4px 6px #382a4144;cursor:pointer;transition:transform .2s ease}
.machine-handle::after{content:"";position:absolute;inset:11px;border:2px solid #937d96;border-radius:50%}
.machine-handle:focus-visible,.capsule-pickup:focus-visible{outline:3px solid #795b75;outline-offset:4px}
.machine-handle:disabled{cursor:default;opacity:.75}
#tab-discover .v49-capsule-details .capsule-stage-hint{font-size:12px;line-height:1.45;color:#7f6d78;max-width:95%;margin:0 auto 10px;position:relative}
#tab-discover .v49-capsule-details .capsule-display{display:none;position:absolute;top:auto;left:0;right:0;bottom:34px;height:86px;align-items:center;justify-content:center;z-index:6;pointer-events:none}
#tab-discover .v49-capsule-details .capsule-pickup{pointer-events:auto;width:78px;height:82px;border:0;background:transparent;display:grid;place-items:center;cursor:pointer;filter:drop-shadow(3px 7px 7px rgba(65,43,62,.22))}
#tab-discover .v49-capsule-details .capsule-object{display:block;position:relative;width:63px;height:74px;filter:none}
#tab-discover .v49-capsule-details .capsule-top{border-radius:40px 40px 5px 5px;background:linear-gradient(130deg,#f3e2f0,#c5a9c7);border-bottom:4px solid #f6e9f2}
#tab-discover .v49-capsule-details .capsule-bottom{border-radius:5px 5px 40px 40px;background:linear-gradient(150deg,#8c6e91,#56445e)}
#tab-discover .v49-capsule-details .capsule-core{inset:16px 12px;font-size:25px;color:#fff8ff}
#tab-discover .v49-capsule-details .capsule-stage[data-phase="drawing"] .capsule-machine{animation:v49-shake .75s ease-in-out both;opacity:1}
#tab-discover .v49-capsule-details .capsule-stage[data-phase="drawing"] .machine-handle{animation:v49-turn .65s ease both}
#tab-discover .v49-capsule-details .capsule-stage[data-phase="dispensed"] .capsule-display,
#tab-discover .v49-capsule-details .capsule-stage[data-phase="opening"] .capsule-display{display:flex}
#tab-discover .v49-capsule-details .capsule-stage[data-phase="dispensed"] .capsule-pickup{animation:v49-dispense .4s cubic-bezier(.22,1.25,.48,1) both}
#tab-discover .v49-capsule-details .capsule-stage[data-phase="opening"] .capsule-top{transform:translateY(-29px) rotate(-12deg);opacity:.35}
#tab-discover .v49-capsule-details .capsule-stage[data-phase="opening"] .capsule-bottom{transform:translateY(20px) rotate(9deg);opacity:.35}
#tab-discover .v49-capsule-details .capsule-stage[data-phase="opening"] .capsule-core{transform:scale(1.3);opacity:1}
#tab-discover .v49-capsule-details .capsule-stage[data-phase="revealed"]{display:none}
#tab-discover .v49-capsule-details .discovery-experience{min-height:0!important;margin:0;background:#f9f4f7;border-color:#e7dce4;border-radius:16px;padding:18px 19px 17px;box-shadow:none;animation:v49-fade-in .18s ease both}
#tab-discover .v49-capsule-details .discovery-experience-top{font-size:10px;font-weight:710;letter-spacing:.06em;color:#866d81}
#tab-discover .v49-capsule-details .discovery-experience-content{padding:11px 0 4px;align-items:flex-start;text-align:left;justify-content:start}
#tab-discover .v49-capsule-details .discovery-experience-content h2{font-size:clamp(19px,4vw,25px);line-height:1.3;margin:0 0 8px;color:#302830;font-weight:830}
#tab-discover .v49-capsule-details .discovery-experience-content p{font-size:12px;line-height:1.6;color:#84717f;margin:0;text-align:left}
#tab-discover .v49-capsule-details .discovery-notice{font-size:11px;padding-top:5px}
.v49-discover-detail{font-size:11px;border:0;border-bottom:1px solid #bca1b1;background:transparent;color:#694a60;margin-top:12px;padding:3px 0;cursor:pointer;font-weight:720}
#tab-discover .v49-capsule-details .v49-discover-extra{margin-top:9px;font-size:11px;line-height:1.5;color:#766678}
#tab-discover .v49-capsule-details .discovery-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}
#tab-discover .v49-capsule-details .discovery-shuffle{background:#fff;border:1px solid #d9cad5;color:#6b4d60;font-size:13px;font-weight:750}
#tab-discover .v49-capsule-details .discovery-collect{background:#74586e;color:white;border:1px solid #74586e;font-size:13px;font-weight:760}
#tab-discover .v49-capsule-details .discovery-actions:has(.discovery-collect.hidden){grid-template-columns:1fr}
#tab-discover .v49-capsule-details .discovery-actions button:disabled{opacity:.6;cursor:wait}
#tab-discover .v46-discover-browser{margin-top:26px}
@keyframes v49-shake{0%,100%{transform:rotate(0)}20%{transform:rotate(-3deg)}40%{transform:rotate(3deg)}60%{transform:rotate(-2deg)}80%{transform:rotate(2deg)}}
@keyframes v49-turn{0%{transform:rotate(0)}100%{transform:rotate(340deg)}}
@keyframes v49-dispense{0%{opacity:0;transform:translateY(-80px) scale(.66)}70%{opacity:1;transform:translateY(7px) scale(1.07)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes v49-fade-in{from{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:780px){
 #experience-list.cards:not(.list-mode){grid-template-columns:minmax(0,1fr)!important;gap:14px}
 #experience-list .v49-ticket,#tab-home .v42-home-completed .v49-ticket{min-height:166px;aspect-ratio:1.85/1}
 #experience-list .v49-ticket-title,#tab-home .v49-ticket-title{font-size:clamp(17px,4.5vw,20px)!important}
 #tab-home .v42-home-completed .quiet-recent-gallery{grid-template-columns:1fr!important;gap:12px!important}
 #tab-home .v42-home-completed .quiet-recent-gallery.v37-has-only-one .v49-ticket{grid-column:auto!important}
}
@media(max-width:420px){
 #experience-list .v49-ticket,#tab-home .v42-home-completed .v49-ticket{grid-template-columns:37% 63%;min-height:164px;aspect-ratio:auto;border-radius:12px}
 .v49-ticket-content{padding:13px 12px 12px 16px}
 .v49-ticket-brand{font-size:8px}
 .v49-ticket-category{font-size:10px;padding:3px 6px}
 .v49-ticket-artwork svg{width:90%;height:65%}
 .v49-art-type{font-size:7px;left:8px;top:9px}
 .v49-ticket-footer time,.v49-ticket-seal{font-size:9px}
 .v49-ticket-note{font-size:10px}
 #tab-discover .v49-capsule-details .capsule-stage{min-height:286px!important}
 #tab-discover .v49-capsule-details .discovery-actions{grid-template-columns:1fr 1fr}
}
@media(max-width:350px){
 .v49-ticket-brand{display:none}
 #experience-list .v49-ticket,#tab-home .v49-ticket{min-height:173px}
 #experience-list .v49-ticket-title,#tab-home .v49-ticket-title{font-size:16px!important}
 #tab-discover .v49-capsule-details .discovery-actions{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
 .v49-ticket,.capsule-machine,.machine-handle,.capsule-pickup,.discovery-experience{animation:none!important;transition:none!important}
}
