.theme-tiket-perjalanan { --cover-bg: var(--sky2, #cfe3e6); --aside-bg: var(--primary); --mono: 'Space Mono', ui-monospace, monospace; --radius: 14px; }
.theme-tiket-perjalanan .cover { --cover-text: var(--text); }
.theme-tiket-perjalanan .tk-sky { position: absolute; inset: 0; width: 100%; height: 100%; }
.theme-tiket-perjalanan .inv-aside .tk-sky { opacity: .55; }
.theme-tiket-perjalanan .tk-wrap { position: relative; z-index: 2; width: 100%; padding: 26px 18px; }
.theme-tiket-perjalanan .tk-ticket { max-width: 340px; margin: 0 auto; background: var(--surface); border-radius: 18px; box-shadow: 0 30px 60px -20px rgb(0 0 0 / .45); text-align: left; overflow: hidden;
  background-image: repeating-radial-gradient(circle at 120% -10%, transparent 0 14px, color-mix(in srgb, var(--accent) 12%, transparent) 14px 15px); }
.theme-tiket-perjalanan .tk-head { display: flex; justify-content: space-between; padding: 16px 20px; font-family: var(--mono); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; border-bottom: 1px dashed color-mix(in srgb, var(--text) 25%, transparent); }
.theme-tiket-perjalanan .tk-row { padding: 12px 20px; }
.theme-tiket-perjalanan small { display: block; font-family: var(--mono); font-size: 9.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.theme-tiket-perjalanan .tk-route { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: 8px; }
.theme-tiket-perjalanan .tk-route b { font-family: var(--font-heading); font-size: 26px; line-height: 1.1; color: var(--primary); overflow-wrap: anywhere; }
.theme-tiket-perjalanan .tk-plane { display: flex; align-items: center; gap: 4px; color: var(--primary); padding-bottom: 6px; }
.theme-tiket-perjalanan .tk-plane i { width: 18px; border-top: 2px dotted currentColor; }
.theme-tiket-perjalanan .tk-plane svg { width: 20px; transform: rotate(90deg); }
.theme-tiket-perjalanan .guest-block { margin: 0; padding: 10px 20px; border-radius: 0; background: color-mix(in srgb, var(--primary) 7%, transparent); max-width: none; backdrop-filter: none; text-align: left; }
.theme-tiket-perjalanan .guest-block small { opacity: 1; }
.theme-tiket-perjalanan .guest-name { display: inline; font-size: 15px; margin: 0; }
.theme-tiket-perjalanan .guest-sal { font-size: 13px; }
.theme-tiket-perjalanan .tk-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.theme-tiket-perjalanan .tk-grid b { font-family: var(--mono); font-size: 14px; font-weight: 400; }
.theme-tiket-perjalanan .tk-grid .tk-script { font-family: var(--font-script); font-size: 24px; line-height: 1.1; }
.theme-tiket-perjalanan .tk-note { text-align: center; font-size: 11.5px; color: var(--muted); margin: 4px 0 14px; }
.theme-tiket-perjalanan .tk-perf { position: relative; height: 0; border-top: 2px dashed color-mix(in srgb, var(--text) 30%, transparent); margin: 0 14px; }
.theme-tiket-perjalanan .tk-perf::before, .theme-tiket-perjalanan .tk-perf::after { content: ''; position: absolute; top: -13px; width: 24px; height: 24px; border-radius: 50%; background: var(--sky2, #ddd); }
.theme-tiket-perjalanan .tk-perf::before { left: -27px; } .theme-tiket-perjalanan .tk-perf::after { right: -27px; }
.theme-tiket-perjalanan .tk-stub { text-align: center; padding: 16px 20px 22px; }
.theme-tiket-perjalanan .tk-barcode { display: flex; justify-content: center; gap: 2px; height: 46px; margin: 10px 0 6px; }
.theme-tiket-perjalanan .tk-barcode i { background: var(--text); }
.theme-tiket-perjalanan .tk-code { letter-spacing: .3em; }
.theme-tiket-perjalanan .btn-open { margin-top: 14px; border-radius: 999px; letter-spacing: .14em; text-transform: uppercase; font-size: 12px; animation: none; }
.theme-tiket-perjalanan .cover.t-slide.opened { transform: translateY(-110%); }
/* section: kartu tiket */
.theme-tiket-perjalanan .sec { background: var(--bg); }
.theme-tiket-perjalanan .sec-alt { background: color-mix(in srgb, var(--bg) 60%, var(--surface)); }
.theme-tiket-perjalanan .sec-sub { font-family: var(--mono); font-size: 10px; letter-spacing: .3em; }
.theme-tiket-perjalanan .sec-title { font-size: 32px; }
.theme-tiket-perjalanan .card { position: relative; border-radius: 16px; background: var(--surface); box-shadow: 0 14px 30px -18px rgb(0 0 0 / .35);
  -webkit-mask: radial-gradient(circle at 0 70%, transparent 11px, #000 11.5px) left / 51% 100% no-repeat, radial-gradient(circle at 100% 70%, transparent 11px, #000 11.5px) right / 51% 100% no-repeat;
          mask: radial-gradient(circle at 0 70%, transparent 11px, #000 11.5px) left / 51% 100% no-repeat, radial-gradient(circle at 100% 70%, transparent 11px, #000 11.5px) right / 51% 100% no-repeat; }
.theme-tiket-perjalanan .session h3 { font-family: var(--mono); font-size: 13px; letter-spacing: .25em; text-transform: uppercase; }
.theme-tiket-perjalanan .session .date { font-family: var(--font-heading); font-size: 24px; color: var(--primary); }
.theme-tiket-perjalanan .cd { background: var(--surface); color: var(--primary); border: 1px dashed var(--primary); }
.theme-tiket-perjalanan .cd b { font-family: var(--mono); }
.theme-tiket-perjalanan .host-photo { border-radius: 14px; width: 150px; height: 190px; transform: rotate(-2deg); border: 8px solid #fff; box-shadow: 0 12px 24px -12px rgb(0 0 0 / .4); }
.theme-tiket-perjalanan .host:nth-child(odd) .host-photo { transform: rotate(2deg); }
.theme-tiket-perjalanan .host-name { font-family: var(--font-script); font-weight: 400; font-size: 44px; }
.theme-tiket-perjalanan .amp { font-family: var(--font-heading); font-size: 36px; }
.theme-tiket-perjalanan .tk-stamp { top: 22px; right: 18px; width: 54px; height: 54px; border: 2px solid color-mix(in srgb, var(--primary) 45%, transparent); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--mono); font-size: 10px; color: color-mix(in srgb, var(--primary) 60%, transparent); transform: rotate(-14deg); letter-spacing: .1em; }
.theme-tiket-perjalanan .gift { background: var(--primary); }
.theme-tiket-perjalanan .rundown time, .theme-tiket-perjalanan .gift .num { font-family: var(--mono); }
.theme-tiket-perjalanan .closing .names { font-family: var(--font-script); }
