
@font-face{font-family:"PassOPPOTime";src:url("./fonts/OPPOSans-B.woff2") format("woff2");font-style:normal;font-weight:700;font-display:block}
.pass-page{--pass-unit:min(calc(100vw / 360),1.597222px);--pass-name-extra:0px;--pass-place-extra:0px;--pass-extra:calc(var(--pass-name-extra) + var(--pass-place-extra));font-family:Arial,"Microsoft YaHei",sans-serif;color:#111;font-synthesis:none;width:calc(360 * var(--pass-unit));max-width:100%;min-height:100svh;margin:0 auto}.pass-return-bar{height:calc(39.333 * var(--pass-unit));background:white;display:flex;align-items:center;padding:0 calc(16 * var(--pass-unit))}.pass-back{display:flex;align-items:center;gap:calc(8 * var(--pass-unit));font-size:calc(14.5 * var(--pass-unit));color:#616161;line-height:calc(20 * var(--pass-unit))}.pass-back svg{width:calc(8 * var(--pass-unit));height:calc(16 * var(--pass-unit));stroke-width:2.2}
.pass-background{min-height:max(calc(681.334 * var(--pass-unit)),calc(100svh - calc(39.333 * var(--pass-unit))));padding:calc(67.333 * var(--pass-unit)) calc(15.333 * var(--pass-unit)) calc(101 * var(--pass-unit));background:linear-gradient(145deg,#cff3f3 0%,#c0e5ff 28%,#c7dfff 62%,#d8e4fd 100%)}
.pass-ticket{position:relative;filter:drop-shadow(0 calc(4 * var(--pass-unit)) calc(7 * var(--pass-unit)) #3668dc29)}
.pass-ticket-body{height:calc(405.333 * var(--pass-unit) + var(--pass-extra));background:#fff;border-radius:calc(9 * var(--pass-unit)) calc(9 * var(--pass-unit)) 0 0;position:relative;text-align:center;mask:radial-gradient(circle calc(13.5 * var(--pass-unit)) at 0 calc(115.3 * var(--pass-unit) + var(--pass-extra)),transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle calc(13.5 * var(--pass-unit)) at 100% calc(115.3 * var(--pass-unit) + var(--pass-extra)),transparent 98%,#000) right/51% 100% no-repeat}
.pass-avatar{position:absolute;z-index:1;top:calc(-35.3 * var(--pass-unit));left:50%;transform:translateX(-50%);width:calc(50 * var(--pass-unit));height:calc(50 * var(--pass-unit));border-radius:50%;background:#eefaff url("./ticket-avatar.png") center/cover no-repeat;border:calc(1 * var(--pass-unit)) solid #f1fbff;box-shadow:0 calc(2 * var(--pass-unit)) calc(3 * var(--pass-unit)) #5363752c}
.pass-name{position:absolute;top:calc(23 * var(--pass-unit));left:calc(10 * var(--pass-unit));right:calc(10 * var(--pass-unit));margin:0;line-height:calc(26 * var(--pass-unit));font-size:calc(18 * var(--pass-unit));font-weight:400;color:#2677ed;overflow-wrap:anywhere}.pass-name span{background:linear-gradient(transparent calc(100% - calc(3 * var(--pass-unit))),#d9e0fa 0)}
.pass-location{position:absolute;top:calc(56 * var(--pass-unit) + var(--pass-name-extra));left:calc(12 * var(--pass-unit));right:calc(12 * var(--pass-unit));margin:0;display:flex;align-items:center;justify-content:center;gap:calc(6 * var(--pass-unit));color:#0062e5;font-family:system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-size:calc(19 * var(--pass-unit));font-weight:500;line-height:calc(30 * var(--pass-unit))}.pass-location svg{width:calc(18 * var(--pass-unit));height:calc(20 * var(--pass-unit));flex-shrink:0}.pass-location span{overflow-wrap:anywhere}
.pass-validity{position:absolute;top:calc(91 * var(--pass-unit) + var(--pass-extra));left:calc(5 * var(--pass-unit));right:calc(5 * var(--pass-unit));margin:0;font-family:"PassOPPOTime",sans-serif;font-size:calc(17 * var(--pass-unit));font-weight:700;line-height:calc(30 * var(--pass-unit));letter-spacing:normal;white-space:nowrap;color:#000}
.pass-qr{position:absolute;top:calc(101.425 * var(--pass-unit) + var(--pass-extra));left:50%;transform:translateX(-50%);width:calc(262 * var(--pass-unit));height:calc(262 * var(--pass-unit));display:block;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.pass-caption{position:absolute;top:calc(352 * var(--pass-unit) + var(--pass-extra));left:0;right:0;font-size:calc(12.5 * var(--pass-unit));line-height:calc(20 * var(--pass-unit));margin:0;color:#aaa;letter-spacing:calc(.15 * var(--pass-unit))}
.pass-links{display:grid;grid-template-columns:repeat(4,1fr);height:calc(95.667 * var(--pass-unit));background:linear-gradient(to left,#4a7ee6 0%,#6090ed 100%);border-radius:0 0 calc(5 * var(--pass-unit)) calc(5 * var(--pass-unit));color:#fff}
.pass-links button{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:flex-start;padding-top:calc(28 * var(--pass-unit));color:#f9fffa;gap:calc(6 * var(--pass-unit));font-size:calc(13 * var(--pass-unit));line-height:calc(20 * var(--pass-unit));white-space:nowrap;font-weight:400}
.pass-links button+button:before{content:"";position:absolute;left:0;top:calc(27 * var(--pass-unit));width:1px;height:calc(44 * var(--pass-unit));background:linear-gradient(transparent,#f3ffff23,transparent)}
.pass-links svg{width:calc(23 * var(--pass-unit));height:calc(24 * var(--pass-unit));fill:none;stroke:#f9fff7;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}

.pass-page button{font:inherit;border:0;padding:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pass-page .pass-back{display:flex;gap:calc(8 * var(--pass-unit));font-size:calc(14.5 * var(--pass-unit));line-height:calc(20 * var(--pass-unit));color:#616161}
.pass-page .pass-links button{padding-top:calc(28 * var(--pass-unit));font-size:calc(13 * var(--pass-unit));line-height:calc(20 * var(--pass-unit));font-weight:400}
.pass-location span{min-width:0}
.pass-qr img{display:block;width:100%;height:100%;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.pass-page button:focus-visible{outline:2px solid #367aff;outline-offset:3px}
.pass-page button:focus:not(:focus-visible){outline:none}
