:root{--c-page-bg: #0d5a5c;--c-poster-bg: #7fd4c4;--c-button-text: #06363f;--c-footer-text: #35736b;--c-avatar-shadow: rgba(6, 54, 63, .18);--c-preview-mask: rgba(4, 32, 38, .58);--c-crop-outline: rgba(233, 255, 250, .92);--c-crop-bg: #080808;--c-crop-panel: #0d4448;--c-vignette: rgba(2, 26, 30, .62);--c-app-shadow: rgba(2, 22, 26, .55);--c-edge-light: rgba(255, 255, 255, .16);--c-edge-dark: rgba(0, 0, 0, .28);--c-avatar-shadow-near: rgba(6, 54, 63, .14);--c-glow: rgba(198, 255, 244, .92);--c-dust: rgba(206, 255, 246, .42);--logo-shadow: drop-shadow(0 calc(var(--u) * .5) calc(var(--u) * .9) rgba(3, 40, 48, .3)) drop-shadow(0 0 calc(var(--u) * .25) rgba(255, 255, 255, .55));--font: "PingFang SC", "Noto Sans SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, -apple-system, sans-serif;--ease-out: cubic-bezier(.22, .61, .36, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--ease-entrance: cubic-bezier(.16, 1, .3, 1);--t-fast: .14s;--t-base: .22s;--t-modal: .34s;--t-slide: .46s;--ease-slide: cubic-bezier(.4, 0, .2, 1);--app-max: 560px;--app-width: min(100vw, var(--app-max), max(430px, 62dvh));--u: calc(var(--app-width) / 100);--gutter: max(0px, calc((100vw - var(--app-width)) / 2));--app-radius: clamp(0px, calc(var(--gutter) * .2), 22px);--app-inset: clamp(0px, calc(var(--gutter) * .16), 26px)}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;color:#fff;font-family:var(--font);background:var(--c-page-bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}body{display:flex;justify-content:center}body:before,body:after,.crop-modal:before,.crop-modal:after{content:"";position:fixed;z-index:0;pointer-events:none}body:before,.crop-modal:before{top:-8%;right:-8%;bottom:-8%;left:-8%;background:var(--c-page-bg) url(./page-background-nvmxEAx-.png) center / cover no-repeat;filter:blur(32px) saturate(1.25) brightness(.62);animation:backdrop-drift 24s ease-in-out infinite alternate;will-change:transform}@keyframes backdrop-drift{0%{transform:scale(1) translateZ(0)}to{transform:scale(1.06) translate3d(0,-1.2%,0)}}body:after,.crop-modal:after{top:0;right:0;bottom:0;left:0;background:radial-gradient(125% 85% at 50% 45%,rgba(0,0,0,0) 30%,var(--c-vignette) 100%)}.dust{position:fixed;top:-20%;right:0;bottom:-20%;left:0;z-index:0;pointer-events:none;opacity:.5}.dust:before,.dust:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:repeat}.dust:before{background-image:radial-gradient(1.6px 1.6px at 12% 18%,var(--c-dust),transparent),radial-gradient(2.1px 2.1px at 74% 32%,var(--c-dust),transparent),radial-gradient(1.4px 1.4px at 38% 66%,var(--c-dust),transparent),radial-gradient(1.9px 1.9px at 88% 79%,var(--c-dust),transparent),radial-gradient(1.5px 1.5px at 55% 91%,var(--c-dust),transparent);background-size:100% 46%;animation:dust-rise 34s linear infinite}.dust:after{background-image:radial-gradient(1.1px 1.1px at 27% 24%,var(--c-dust),transparent),radial-gradient(1.3px 1.3px at 63% 51%,var(--c-dust),transparent),radial-gradient(.9px .9px at 16% 73%,var(--c-dust),transparent),radial-gradient(1.2px 1.2px at 92% 12%,var(--c-dust),transparent);background-size:100% 38%;opacity:.6;animation:dust-rise 58s linear infinite}@keyframes dust-rise{0%{transform:translateZ(0)}to{transform:translate3d(0,-46%,0)}}img{display:block;border:0;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}button{margin:0;padding:0;font:inherit;color:inherit;background:none;border:0;cursor:pointer;-webkit-appearance:none;transition:transform var(--t-fast) var(--ease-spring)}button:active{transform:scale(.94);transition-duration:60ms;transition-timing-function:var(--ease-out)}.poster{container-type:inline-size;position:relative;z-index:1;display:flex;flex:none;flex-direction:column;width:var(--app-width);height:calc(100dvh - var(--app-inset) * 2);margin-block:var(--app-inset);overflow:hidden;background:var(--c-poster-bg);border-radius:var(--app-radius);box-shadow:0 24px 70px -12px var(--c-app-shadow),0 0 100px var(--c-app-shadow),inset 0 1px 0 var(--c-edge-light),inset 0 -1px 0 var(--c-edge-dark)}@supports not (height: 100dvh){.poster{height:calc(100vh - var(--app-inset) * 2)}}.poster:before{content:"";position:absolute;top:-2%;right:-2%;bottom:-2%;left:-2%;z-index:-1;background:url(./page-pattern-DrjT-XIO.webp) center 82% / cover no-repeat,url(./page-background-nvmxEAx-.png) center / cover no-repeat;animation:scene-drift 16s ease-in-out infinite alternate;will-change:transform}@keyframes scene-drift{0%{transform:scale(1.1) translate3d(-3.4%,1.2%,0) rotate(-.6deg)}to{transform:scale(1.15) translate3d(3.4%,-1.8%,0) rotate(.6deg)}}@keyframes surface-in{0%{opacity:0;transform:translateY(10px) scale(.992);filter:blur(10px) saturate(.45)}60%{opacity:.92}to{opacity:1;transform:none;filter:blur(0) saturate(1)}}.anniversary-logo,.slogan-art,.avatar-editor,.poster-details,.poster-footer{animation:surface-in 1.15s var(--ease-entrance) both}@keyframes surface-in-logo{0%{opacity:0;transform:translateY(10px) scale(.992)}60%{opacity:.92}to{opacity:1;transform:none}}.anniversary-logo{animation-name:surface-in-logo}.anniversary-logo{animation-delay:0ms}.slogan-art{animation-delay:70ms}.avatar-editor{animation-delay:145ms}.poster-details{animation-delay:215ms}.poster-footer{animation-delay:.28s}@keyframes surface-in-bg{0%{opacity:0}to{opacity:1}}.poster{animation:surface-in-bg .9s var(--ease-out) both}:root:not(.fx-ready):not(.no-fx) .poster,:root:not(.fx-ready):not(.no-fx) .poster:before,:root:not(.fx-ready):not(.no-fx) .anniversary-logo,:root:not(.fx-ready):not(.no-fx) .slogan-art,:root:not(.fx-ready):not(.no-fx) .avatar-editor,:root:not(.fx-ready):not(.no-fx) .poster-details,:root:not(.fx-ready):not(.no-fx) .poster-footer{animation-play-state:paused}.poster-intro{position:relative;z-index:1;display:flex;flex:75 1 0;flex-direction:column;align-items:center;width:100%;min-height:0}.intro-spacer{display:block;width:100%;min-height:0}.intro-spacer--top{flex:21 1 0}.intro-spacer--middle{flex:7 1 0}.intro-spacer--bottom{flex:14.34 1 0}.anniversary-logo{flex:41 1 0;width:66%;min-height:0;object-fit:contain;filter:var(--logo-shadow)}.slogan-art{flex:7.26 1 0;width:65.93%;min-height:0;object-fit:contain}.avatar-editor{position:relative;z-index:1;flex:0 0 61.5cqw;width:100%;overflow-x:clip;overflow-y:visible}.avatar-track{display:flex;width:100%;height:100%;cursor:grab;will-change:transform}.avatar-track--animated{transition:transform var(--t-slide) var(--ease-slide)}.avatar-track--grabbing{cursor:grabbing}.avatar-slide{position:relative;flex:0 0 100%;width:100%;height:100%}.avatar-visual{position:absolute;top:0;left:50%;width:61.5%;aspect-ratio:1 / 1;transform:translate(-50%);filter:drop-shadow(0 .6cqw .8cqw var(--c-avatar-shadow-near)) drop-shadow(0 2.53cqw 2.93cqw var(--c-avatar-shadow))}.avatar-photo{position:absolute;top:1px;left:1px;width:calc(100% - 2px);height:calc(100% - 2px);overflow:hidden;background:#fff}.avatar-photo--circle{top:15.5%;left:15.5%;width:69%;height:69%;border-radius:50%}.avatar-photo-img{width:100%;height:100%;object-fit:cover}.avatar-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill}.avatar-slide:before{content:"";position:absolute;top:0;left:50%;width:61.5%;aspect-ratio:1 / 1;pointer-events:none;opacity:0;transition:opacity var(--t-slide) var(--ease-slide)}.avatar-slide:before{z-index:0;transform:translate(-50%) scale(1.1);background:radial-gradient(circle at 50% 50%,transparent 48%,var(--c-glow) 56%,var(--c-glow) 62%,rgba(140,255,226,.34) 71%,transparent 80%);filter:blur(7px)}.avatar-slide.is-active:before{opacity:1;animation:glow-breathe 3.6s ease-in-out infinite}@keyframes glow-breathe{0%,to{opacity:.62;transform:translate(-50%) scale(1.07)}50%{opacity:1;transform:translate(-50%) scale(1.13)}}.frame-arrow{position:absolute;top:50%;z-index:2;display:flex;align-items:center;justify-content:center;width:14cqw;height:14cqw;padding:4.3cqw;transform:translateY(-50%)}.frame-arrow--previous{left:4.46cqw}.frame-arrow--next{right:4.37cqw}.frame-arrow img{width:100%;height:auto}.frame-arrow:active{transform:translateY(-50%) scale(.9)}.poster-details{position:relative;z-index:1;display:flex;flex:0 0 34.7cqw;flex-direction:column;align-items:center;padding-top:8.6cqw}.section-title{width:79.62%;height:auto}.actions{position:relative;width:100%;height:9.87cqw;margin-top:12.74cqw}.action-button{position:absolute;top:0;width:29.5cqw;aspect-ratio:281 / 94;color:var(--c-button-text);font-weight:700;font-size:3.8cqw;line-height:1;text-align:center}.action-button--upload{left:35.25%}.action-button--choose{left:15.5%}.action-button--save{right:15.5%}.poster-footer{position:relative;z-index:1;display:flex;flex:24 1 0;flex-direction:column;align-items:center;justify-content:flex-end;width:100%;min-height:0;overflow:hidden}.cityscape{display:none;flex:0 1 auto;width:99.12%;max-height:30.62cqw;min-height:0;object-fit:contain}.icp-link{flex:none;margin:.5cqw 0 1.5cqw;color:var(--c-footer-text);font-size:2.4cqw;line-height:1.4;text-align:center}.icp-link a{color:inherit;text-decoration:none}.icp-link .police-icon{display:inline-block;width:2.4cqw;height:2.4cqw;margin-right:.4em;vertical-align:-.15em}.preview-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;justify-content:center;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;opacity:0;transition:opacity var(--t-modal) var(--ease-out)}.preview-modal[hidden]{display:none}.preview-modal.is-open{opacity:1}.preview-modal:not(.is-open){pointer-events:none}.preview-modal.is-shattering .result-tip,.preview-modal.is-shattering .result-actions{opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .18s var(--ease-out),transform .18s var(--ease-out)}.preview-modal.is-shattering .preview-backdrop{opacity:0;transition:opacity .9s var(--ease-out) .18s}.preview-modal.is-shattering{pointer-events:none}.preview-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--c-preview-mask)}.preview-card{position:relative;z-index:1;display:flex;flex:none;flex-direction:column;gap:calc(2.67 * var(--u));width:var(--app-width);height:100%;padding:calc(env(safe-area-inset-top) + 4.27 * var(--u)) calc(8.53 * var(--u)) calc(env(safe-area-inset-bottom) + 4.27 * var(--u));overflow-y:auto;overscroll-behavior:contain;transform:translateY(18px) scale(.97);transition:transform var(--t-modal) var(--ease-entrance)}.preview-modal.is-open .preview-card{transform:none}.result-preview{display:flex;flex:1 1 auto;justify-content:center;min-height:0;position:relative;animation:shutter-kick 1s var(--ease-out) 60ms both}.result-poster{width:100%;height:100%;object-fit:contain;animation:photo-snap 1s var(--ease-entrance) 60ms both}@keyframes photo-snap{0%{opacity:0;transform:scale(.9);filter:blur(20px) brightness(.75)}40%{opacity:1;transform:scale(.97);filter:blur(12px) brightness(.7)}48%{opacity:1;transform:scale(.98);filter:blur(10px) brightness(.45)}52%{opacity:1;transform:none;filter:blur(0) brightness(1.9)}58%{opacity:1;transform:none;filter:blur(0) brightness(1.15)}68%{opacity:1;transform:none;filter:blur(0) brightness(1)}to{opacity:1;transform:none;filter:blur(0) brightness(1)}}.shutter-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.shutter-layer:before,.shutter-layer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0}.shutter-layer:before{background:radial-gradient(78% 60% at 50% 46%,#00000047,#000000b8 58%,#000000f0);animation:shutter-vignette 1s var(--ease-out) 60ms both}@keyframes shutter-vignette{0%{opacity:.45}44%{opacity:1}52%{opacity:0}to{opacity:0}}.shutter-layer:after{background:radial-gradient(58% 44% at 50% 46%,#fffffffa,#ffffffb3 42%,#fff0 78%);transform:scale(.6);animation:shutter-bloom 1s var(--ease-out) 60ms both}@keyframes shutter-bloom{0%{opacity:0;transform:scale(.6)}46%{opacity:0;transform:scale(.72)}52%{opacity:.92;transform:scale(1)}64%{opacity:0;transform:scale(1.2)}to{opacity:0;transform:scale(1.2)}}@keyframes shutter-kick{0%,50%{transform:none}53%{transform:translateY(-3px) scale(1.006)}57%{transform:translateY(2px)}62%{transform:translateY(-1px)}68%,to{transform:none}}.result-cheer{position:absolute;top:calc(2.2 * var(--u));left:calc(8.53 * var(--u));right:calc(8.53 * var(--u));z-index:2;padding:calc(2.4 * var(--u)) calc(3.2 * var(--u));text-align:center;border-radius:calc(3 * var(--u));background:linear-gradient(135deg,#0e7490db,#0d9488db);box-shadow:0 8px 28px -8px #00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transform:translateY(-14px);pointer-events:none;transition:opacity .7s var(--ease-entrance),transform .7s var(--ease-entrance)}.preview-modal.is-celebrating .result-cheer{opacity:1;transform:none}.cheer-title{margin:0;color:#fff;font-weight:700;font-size:calc(4 * var(--u));letter-spacing:.02em;text-shadow:0 2px 12px rgba(0,0,0,.45)}.cheer-note{margin:calc(1 * var(--u)) 0 0;color:#fffc;font-size:calc(2.8 * var(--u));line-height:1.5;text-shadow:0 1px 8px rgba(0,0,0,.4)}.preview-modal.is-shattering .result-cheer{opacity:0;transform:translateY(-8px);animation:none;transition:opacity .18s var(--ease-out),transform .18s var(--ease-out)}.result-tip{flex:none;margin:0;color:#ffffffd1;font-size:calc(3.2 * var(--u));text-align:center}.result-actions{display:flex;flex:none;flex-direction:column;align-items:center;gap:calc(2.13 * var(--u))}.result-action{width:calc(36 * var(--u));aspect-ratio:281 / 94;color:var(--c-button-text);font-weight:700;font-size:calc(3.2 * var(--u));text-align:center}.crop-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;justify-content:center;overflow:hidden;background:var(--c-page-bg);opacity:0;transition:opacity var(--t-modal) var(--ease-out)}.crop-modal[hidden]{display:none}.crop-modal.is-open{opacity:1}.crop-modal:not(.is-open){pointer-events:none}.crop-dialog{position:relative;z-index:1;display:flex;flex:none;flex-direction:column;width:var(--app-width);height:calc(100% - var(--app-inset) * 2);margin-block:var(--app-inset);overflow:hidden;background:var(--c-crop-bg);border-radius:var(--app-radius);box-shadow:0 24px 70px -12px var(--c-app-shadow),0 0 100px var(--c-app-shadow),inset 0 1px 0 var(--c-edge-light),inset 0 -1px 0 var(--c-edge-dark)}.crop-controls{transform:translateY(14px);opacity:0;transition:transform var(--t-modal) var(--ease-entrance) 80ms,opacity var(--t-modal) var(--ease-out) 80ms}.crop-modal.is-open .crop-controls{transform:none;opacity:1}.crop-stage{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;background:var(--c-crop-bg);touch-action:none}.crop-image{position:absolute;transform-origin:0 0;object-fit:fill}.crop-window{position:absolute;top:50%;left:50%;border:2px dashed var(--c-crop-outline);transform:translate(-50%,-50%);box-shadow:0 0 0 9999px #0000008f;pointer-events:none}.crop-controls{flex:none;padding:calc(6.93 * var(--u)) 7% calc(env(safe-area-inset-bottom) + 5.33 * var(--u));background:var(--c-crop-panel)}.crop-instruction{margin:0 0 calc(6.4 * var(--u));font-weight:700;font-size:calc(3.8 * var(--u));line-height:1.5;text-align:center}.crop-actions{display:flex;gap:8%;justify-content:center}.crop-action{flex:none;width:42%;aspect-ratio:281 / 94;color:var(--c-button-text);font-weight:700;font-size:calc(4 * var(--u));text-align:center}.action-button,.crop-action,.result-action{background:url(./button-background-D560ktfH.png) center / 100% 100% no-repeat}.crop-action,.result-action{position:relative}.action-button,.crop-action,.result-action{overflow:hidden;border-radius:999px;transition:transform var(--t-fast) var(--ease-out),filter var(--t-fast) var(--ease-out)}.action-button:before,.crop-action:before,.result-action:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.62) 0%,rgba(255,255,255,.22) 26%,transparent 58%);opacity:0;transition:opacity var(--t-base) var(--ease-out)}.action-button:after,.crop-action:after,.result-action:after{content:"";position:absolute;top:-20%;left:0;width:42%;height:140%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(255,255,255,.68),transparent);opacity:0;transform:translate(-160%) skew(-18deg)}@media (hover: hover) and (pointer: fine){.action-button:hover,.crop-action:hover,.result-action:hover{transform:translateY(-1px);filter:brightness(1.04)}.action-button--upload:hover,.action-button--choose:hover,.action-button--save:hover{transform:translateY(-1px)}.action-button:hover:before,.crop-action:hover:before,.result-action:hover:before{opacity:1}.action-button:hover:after,.crop-action:hover:after,.result-action:hover:after{animation:button-sweep .72s var(--ease-out)}}@keyframes button-sweep{0%{opacity:1;transform:translate(-160%) skew(-18deg)}to{opacity:0;transform:translate(400%) skew(-18deg)}}.action-button:active,.crop-action:active,.result-action:active{transform:scale(.97);filter:brightness(.98)}.action-button:active:before,.crop-action:active:before,.result-action:active:before{opacity:1;transition-duration:var(--t-fast)}.loading-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#00000059}.loading-mask[hidden]{display:none}.loading-box{display:flex;flex-direction:column;align-items:center;gap:calc(3 * var(--u));padding:calc(6 * var(--u)) calc(8 * var(--u));font-size:calc(3.6 * var(--u));background:#000000b8;border-radius:calc(3 * var(--u))}.loading-spinner{width:calc(8 * var(--u));height:calc(8 * var(--u));border:calc(.8 * var(--u)) solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:18vh;left:50%;z-index:80;max-width:calc(70 * var(--u));padding:calc(3 * var(--u)) calc(5 * var(--u));font-size:calc(3.6 * var(--u));line-height:1.5;text-align:center;background:#000000c7;border-radius:calc(2 * var(--u));transform:translate(-50%)}.toast[hidden]{display:none}.file-input{position:fixed;top:0;left:-9999px;width:1px;height:1px;opacity:0}@media (prefers-reduced-motion: reduce){:root:not(.force-fx) *,:root:not(.force-fx) *:before,:root:not(.force-fx) *:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.no-fx *,.no-fx *:before,.no-fx *:after{animation:none!important;transition:none!important}
