:root{--bg:#efefe7;background:var(--bg)}html,*{scrollbar-width:none;-ms-overflow-style:none}::-webkit-scrollbar{width:0;height:0;display:none}html::-webkit-scrollbar{display:none}body{scrollbar-width:none;-ms-overflow-style:none;margin:0;overflow-x:hidden}body::-webkit-scrollbar{display:none}#root{min-height:100svh}.card{box-sizing:border-box;will-change:transform, opacity;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;width:320px;height:320px;padding:10px;display:flex}.card--large{border-radius:24px;width:480px;height:480px}.graphic{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:300px;height:300px;display:flex}.graphic>div{width:100%;height:100%;display:flex}.graphic-svg{width:100%;height:100%;display:block}.graphic-placeholder{background:#0000000d;border-radius:16px;width:300px;height:300px}.ticket{display:flex}.ticket-left{box-sizing:border-box;background:#efefe7;border-radius:32px;flex-shrink:0;justify-content:center;align-items:center;width:520px;height:520px;padding:20px;display:flex}.ticket-right{box-sizing:border-box;background:#efefe7;border-radius:32px;flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:flex-start;width:760px;padding:30px 34px 30px 40px;display:flex}.ticket-title{color:#535353;text-transform:capitalize;font-family:IBM Plex Serif,serif;font-size:120px;font-style:normal;font-weight:400;line-height:120px}.ticket-letter{color:#535353;font-family:IBM Plex Sans,sans-serif;font-size:120px;font-style:normal;font-weight:700;line-height:120px}.ticket-intro-line{color:#313131;font-family:IBM Plex Sans,sans-serif;font-size:30px;font-style:normal;font-weight:400;line-height:30px}.ac{z-index:1000;justify-content:center;align-items:center;display:flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}.ac-bar,.ac-circle,.ac-ticket{visibility:hidden;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ac-bar-track{background:#53535326;border-radius:2px;width:240px;height:4px;overflow:hidden}.ac-bar-fill{background:#535353;border-radius:2px;height:100%;transition:width .12s linear}.ac-circle-btn{color:#535353;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#efefe7e6;border:2px solid #5353534d;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:border-color .2s,background .2s,transform .15s;display:flex}.ac-circle-btn:hover:not(:disabled){background:#efefe7;border-color:#535353;transform:scale(1.08)}.ac-circle-btn:active:not(:disabled){transform:scale(.95)}.ac-circle-btn:disabled{opacity:.4;cursor:not-allowed}.ac-ticket{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#efefe7e6;border-radius:28px;align-items:center;gap:20px;padding:8px 20px;display:flex}.ac-nav-btn{color:#535353;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s,transform .12s;display:flex}.ac-nav-btn:hover:not(:disabled){background:#5353531a;transform:scale(1.1)}.ac-nav-btn:active:not(:disabled){transform:scale(.92)}.ac-nav-btn:disabled{opacity:.25;cursor:not-allowed}.ac-dots{align-items:center;gap:10px;display:flex}.ac-dot{cursor:pointer;background:#53535340;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:background .2s,transform .15s}.ac-dot:hover:not(:disabled){background:#53535380;transform:scale(1.3)}.ac-dot:disabled{cursor:default}.ac-dot--active{background:#535353;transform:scale(1.2)}.ac-dot--active:hover:not(:disabled){background:#535353}.ac-restart{border-color:#53535333}.mobile-view{z-index:1000;background:#e2dfd0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.mobile-graphic{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;position:absolute;top:0;left:0}.mobile-graphic:active{cursor:grabbing}.mobile-message{color:#535353;text-align:center;z-index:1;pointer-events:none;margin:0;font-family:IBM Plex Serif,serif;font-size:18px;font-weight:400}.mobile-logo{z-index:1;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.stage{--ticket-x:calc(50vw - 640px);--ticket-y:calc(50vh - 260px);background:#e2dfd0;width:100%;height:100vh;position:relative;overflow:hidden}.grid-panel{will-change:transform, width, height, border-radius, opacity;background:#efefe7;border-radius:0;width:4420px;height:1480px;position:absolute;top:calc(50% - 740px);left:0;overflow:hidden}.grid-wrapper{position:absolute;top:0;left:0}.grid{flex-shrink:0;grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(12,minmax(0,1fr));gap:40px;width:4420px;height:1480px;display:grid}.grid-cell{justify-content:center;align-items:center;display:flex}.ticket-right-panel{top:var(--ticket-y);left:calc(var(--ticket-x) + 520px);box-sizing:border-box;will-change:transform;background:#efefe7;border-radius:32px;flex-direction:column;justify-content:space-between;align-items:flex-start;width:760px;height:520px;padding:30px 34px 30px 40px;display:none;position:absolute}.ticket-head{justify-content:space-between;align-items:center;width:100%;display:flex}.ticket-title{color:#535353;text-transform:capitalize;font-family:IBM Plex Serif,serif;font-size:120px;font-weight:400;line-height:120px}.ticket-letter{color:#535353;font-family:IBM Plex Sans,sans-serif;font-size:120px;font-weight:700;line-height:120px}.ticket-content{justify-content:space-between;align-items:flex-end;width:100%;display:flex}.ticket-intro{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.ticket-intro-line{color:#313131;font-family:IBM Plex Sans,sans-serif;font-size:30px;font-weight:400;line-height:30px}.ticket-logo{flex-shrink:0}.ticket-stack-area{visibility:hidden;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ticket-stack-item{top:var(--ticket-y);left:var(--ticket-x);will-change:transform, opacity;position:absolute}.scatter-area{flex-direction:column;justify-content:center;align-items:center;gap:40px;display:none;position:absolute;inset:0}.scatter-letters{gap:16px;display:flex}
