:root{--line: rgba(22, 23, 45, .14);color:#16172d;background:#f1eee8;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-synthesis:none;scrollbar-color:#827baa #e6e2de;scrollbar-width:thin}*{box-sizing:border-box}html{min-width:320px;background:#f1eee8}body{min-width:320px;min-height:100vh;margin:0}button,a{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #5952d7;outline-offset:3px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#e6e2de}::-webkit-scrollbar-thumb{border:2px solid #e6e2de;border-radius:10px;background:#827baa}::-webkit-scrollbar-thumb:hover{background:#5952d7}.state-page,.invitation-page{width:min(100%,640px);min-height:100vh;margin:0 auto;padding:max(22px,env(safe-area-inset-top)) 20px max(38px,env(safe-area-inset-bottom))}.state-page{background:#16172d;color:#f9f8fa}.state-wordmark,.page-header{display:flex;justify-content:space-between;gap:16px;font-size:11px;font-weight:700;letter-spacing:.14em}.state-wordmark{color:#f9f8fa}.state-ticket{display:grid;grid-template-columns:46px 1fr;min-height:320px;margin-top:74px;overflow:hidden;border:1px solid rgba(255,255,255,.17);border-radius:14px;background:#20213b}.state-ticket__strip,.pass-strip{display:flex;flex-direction:column;justify-content:space-between;padding:18px 13px;background:#5952d7;color:#f9f8fa;font:600 10px/1.1 ui-monospace,monospace;letter-spacing:.12em;writing-mode:vertical-rl}.state-ticket__body{padding:34px 28px}.state-ticket h1{margin:22px 0 0;font-family:Georgia,Songti SC,serif;font-size:clamp(32px,10vw,47px);font-weight:500;line-height:1.17}.state-ticket p{color:#d7d4e6;line-height:1.75}.retry,.module-action{display:inline-flex;min-height:44px;align-items:center;justify-content:center;margin-top:20px;padding:10px 16px;border:1px solid #dcd9ff;border-radius:3px;background:transparent;color:#fff;text-decoration:none}.retry:hover{background:#5952d7}.invitation-page{--page-bg: #f1eee8;--theme-primary: #5952d7;--theme-text: #16172d;background:var(--page-bg);color:var(--theme-text)}.page-header{margin-bottom:25px;color:var(--theme-text)}.page-header span:last-child{opacity:.58}.pass{display:grid;grid-template-columns:54px 1fr;overflow:hidden;min-height:430px;border-radius:15px;background:#16172d;color:#f9f8fa;box-shadow:0 18px 45px #16172d24}.pass-strip{background:var(--theme-primary)}.pass-body{padding:38px 28px 30px}.eyebrow{margin:0;font-size:11px;font-weight:700;letter-spacing:.16em;opacity:.7}.pass .eyebrow{color:#dcd9ff}.guest-name{margin:44px 0 0;color:#d7d4e6;font-size:15px}.pass h1{margin:9px 0 0;font-family:Georgia,Songti SC,STSong,serif;font-size:clamp(31px,9vw,46px);font-weight:500;letter-spacing:-.045em;line-height:1.14}.rule{height:1px;margin:27px 0 22px;background:#ffffff3d}.pass-meta,.identity-card dl{display:grid;gap:16px;margin:0}.pass-meta div,.identity-card dl div{display:grid;gap:4px}dt{font-size:10px;font-weight:700;letter-spacing:.13em;opacity:.6}dd{margin:0;font-size:15px;line-height:1.55}.host-note{margin:22px 6px 0;padding:2px 0 2px 17px;border-left:3px solid var(--theme-primary);color:#4f4c57;font-family:Georgia,Songti SC,serif;font-size:17px;line-height:1.65}.identity-card,.qr-card,.activity-content{margin-top:28px;border:1px solid var(--line);border-radius:14px;background:#ffffff5c}.identity-card{padding:25px}.identity-card dl{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px;gap:12px}.identity-card dd{overflow-wrap:anywhere;font-weight:650}.qr-card{display:grid;justify-items:center;padding:27px 24px 24px;text-align:center}.qr-card h2{margin:9px 0 21px;font-family:Georgia,Songti SC,serif;font-size:23px;font-weight:600}.qr-card--inactive{background:#ffffff38}.qr-canvas{display:block;width:min(244px,100%);height:auto;padding:6px;border:1px solid rgba(22,23,45,.14);background:#f7f5f0;image-rendering:pixelated}.qr-note,.caption{margin:17px 0 0;color:#595765;font-size:13px;line-height:1.65}.qr-failure{color:#a9414c}.activity-content{overflow:hidden}.module{position:relative;padding:28px 25px;border-top:1px solid var(--line)}.module:first-child{border-top:0}.module h2{margin:9px 0 0;font-family:Georgia,Songti SC,serif;font-size:25px;line-height:1.28}.module-body{margin:13px 0 0;white-space:pre-line;font-size:16px;line-height:1.76}.module--hero{min-height:230px;padding:0;background:#272541;color:#fff}.module--hero>img{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.72}.hero-copy{padding:28px 25px}.hero-copy--overlay{position:relative;min-height:230px;padding:122px 25px 26px;background:linear-gradient(to bottom,transparent 15%,rgba(13,13,29,.8))}.hero-copy h2{margin:9px 0 0;font-size:31px}.hero-copy p:last-child{margin:10px 0 0;line-height:1.6}.content-image,.content-video{display:block;width:100%;margin-top:17px;border-radius:8px;background:#16172d14}.media-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:16px}.media-grid img,.media-strip img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px}.media-strip{display:flex;gap:10px;margin-top:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-gutter:stable}.media-strip img{width:82%;flex:0 0 82%;scroll-snap-align:start}.schedule{display:grid;gap:18px;margin-top:19px}.schedule-row{display:grid;grid-template-columns:80px 1fr;gap:12px}.schedule-row time{color:var(--theme-primary);font-weight:700}.schedule-row strong{font-size:16px}.schedule-row p{margin:5px 0 0;color:#595765;font-size:14px;line-height:1.55}.module-action{margin-top:18px;border-color:currentColor;color:inherit}.module-action:hover{background:var(--theme-primary);border-color:var(--theme-primary);color:#fff}.module-action-hint{margin:17px 0 0;color:#595765;font-size:14px;line-height:1.6}.module--footer{color:#595765;font-size:13px;line-height:1.6;text-align:center}@media(max-width:420px){.identity-card dl{grid-template-columns:1fr;gap:15px}.identity-card dl div{grid-template-columns:82px 1fr;align-items:baseline}.identity-card dt{font-size:10px}.identity-card dd{font-size:16px}.pass{min-height:406px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(forced-colors:active){:root{scrollbar-color:auto}.pass,.state-ticket{border:1px solid CanvasText}.pass-strip,.state-ticket__strip{forced-color-adjust:auto}}
