@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-cyrillic-ext-wght-normal-okcGN4Nq.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-cyrillic-wght-normal-BS41q_Tv.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-greek-ext-wght-normal-DQgQPNk4.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-greek-wght-normal-sS1B39LI.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-vietnamese-wght-normal-TKKdAiBA.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-latin-ext-wght-normal-B4u9PlvR.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-latin-wght-normal-DX-nOvPD.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #030b1f;--bg-2: #07163a;--bg-3: #0c2253;--blue: #1e6bff;--blue-deep: #1450d6;--blue-bright: #4d9bff;--blue-soft: #a9d0ff;--white: #ffffff;--text: #eef4ff;--text-soft: rgba(238, 244, 255, .72);--text-faint: rgba(238, 244, 255, .5);--line: rgba(255, 255, 255, .12);--glass: rgba(255, 255, 255, .08);--glass-strong: rgba(255, 255, 255, .14);--danger: #ff6b7a;--accent: var(--blue);--font-display: "Bricolage Grotesque Variable", "Bricolage Grotesque", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Inter Tight Variable", "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--gutter: 16px;--radius: 22px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg)}body{font-family:var(--font-body);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior:none;overflow:hidden}[hidden]{display:none!important}img,video{display:block;max-width:100%}button,input{font:inherit;color:inherit}h1,h2,h3{margin:0;font-family:var(--font-display);letter-spacing:-.02em}h1:focus,h2:focus{outline:none}#app{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;background:var(--bg);opacity:0;visibility:hidden;transform:translateY(18px) scale(.985);transition:opacity .5s var(--ease),transform .6s var(--ease),visibility 0s linear .6s}.screen.is-active{opacity:1;visibility:visible;transform:none;transition:opacity .5s var(--ease) .08s,transform .6s var(--ease) .08s,visibility 0s;z-index:1}.screen.is-leaving{transform:translateY(-12px) scale(1.01)}.ambient{position:fixed;top:-20%;right:-20%;bottom:-20%;left:-20%;z-index:0;background-size:cover;background-position:center;filter:blur(60px) saturate(1.4);opacity:.35;transform:translateZ(0);transition:background-image .6s var(--ease),opacity .6s var(--ease);pointer-events:none}.ambient:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(90% 60% at 50% 40%,transparent,var(--bg) 85%)}.ambient--strong{opacity:.55}.screen>*:not(.ambient){position:relative;z-index:1}.topbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;padding:calc(8px + var(--safe-top)) 10px 8px;min-height:calc(60px + var(--safe-top))}.topbar--overlay{position:absolute!important;top:0;left:0;right:0;z-index:5!important;background:linear-gradient(180deg,#030b1fd9,#030b1f00)}.topbar__title{font-size:1.05rem;font-weight:700;text-align:center;letter-spacing:-.01em}.topbar__spacer{width:44px}.brand-mini{justify-self:center;font-family:var(--font-display);font-size:1.15rem;font-weight:800;letter-spacing:-.02em}.brand-mini b{font-weight:800;color:var(--blue-bright)}.icon-btn{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--glass);color:var(--white);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background-color .2s,transform .15s var(--ease)}.icon-btn:hover{background:var(--glass-strong)}.icon-btn:active{transform:scale(.92)}.icon-btn svg,.round-btn svg,.btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}:focus-visible{outline:3px solid var(--blue-soft);outline-offset:3px}.eyebrow{margin:0 0 6px;font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-bright)}.title{font-size:clamp(1.7rem,7vw,2.2rem);font-weight:800;line-height:1.05}.error-text{margin:12px 0 0;color:var(--danger);font-weight:600;text-align:center}.hint{margin:0;font-size:.9rem;text-align:center;color:var(--text-soft)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 26px;border:0;border-radius:999px;font-weight:700;font-size:1.04rem;letter-spacing:-.005em;cursor:pointer;user-select:none;-webkit-user-select:none;transition:transform .18s var(--ease),background-color .2s,box-shadow .25s,opacity .2s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn--block{width:100%}.btn--primary{background:linear-gradient(180deg,#3b86ff,var(--blue) 60%,var(--blue-deep));color:var(--white);box-shadow:0 10px 30px -10px #1e6bffe6,inset 0 1px #ffffff40}.btn--primary:hover{box-shadow:0 14px 36px -10px #1e6bff,inset 0 1px #ffffff40}.btn--glow{background:var(--white);color:var(--bg);box-shadow:0 0 #4d9bff8c,0 18px 40px -12px #4d9bffe6;animation:glow 2.6s var(--ease) infinite}.btn--glow svg{transition:transform .25s var(--ease)}.btn--glow:hover svg{transform:translate(3px)}@keyframes glow{0%,to{box-shadow:0 0 #4d9bff80,0 18px 40px -12px #4d9bffe6}60%{box-shadow:0 0 0 14px #4d9bff00,0 18px 40px -12px #4d9bffe6}}.btn--dark{background:var(--glass-strong);color:var(--white);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:inset 0 0 0 1px var(--line)}.btn--dark:hover{background:#fff3}.btn--ghost-light{background:transparent;color:var(--white);box-shadow:inset 0 0 0 1.5px #ffffff80}.btn--text{min-height:48px;padding:0 14px;background:none;color:var(--blue-soft);font-weight:600;font-size:.98rem}.btn--text:hover{color:var(--white)}.toast{position:fixed;left:50%;top:calc(68px + var(--safe-top));pointer-events:none;z-index:50;width:max-content;max-width:calc(100% - 32px);padding:14px 20px;border-radius:18px;background:#0c2253eb;color:var(--white);font-weight:600;line-height:1.35;text-align:center;box-shadow:0 16px 40px -12px #000000b3,inset 0 0 0 1px var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform:translate(-50%,-16px);opacity:0;transition:transform .35s var(--ease-spring),opacity .25s}.toast.is-in{transform:translate(-50%);opacity:1}.offline{position:fixed;top:calc(var(--safe-top) + 8px);left:50%;z-index:60;transform:translate(-50%);max-width:calc(100% - 32px);padding:8px 14px;border-radius:999px;background:#3a1020;color:#ffd5da;font-size:.85rem;font-weight:600;text-align:center}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.screen--welcome{overflow:hidden;background:radial-gradient(120% 60% at 50% 120%,rgba(30,107,255,.55),transparent 60%),var(--bg)}.wall{position:absolute!important;top:-10%;right:-30%;bottom:-10%;left:-30%;z-index:0!important;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;transform:rotate(-8deg) scale(1.05);opacity:0;transition:opacity 1.6s var(--ease) .4s}.wall.is-ready{opacity:1}.wall__col{display:flex;flex-direction:column;gap:14px;animation:drift 60s linear infinite;will-change:transform}.wall__col:nth-child(2){animation-duration:75s;animation-direction:reverse;margin-top:-40%}.wall__col:nth-child(3){animation-duration:68s;margin-top:-18%}.wall__col:nth-child(4){animation-duration:82s;animation-direction:reverse;margin-top:-60%}.wall__col:nth-child(5){animation-duration:64s;margin-top:-30%}.wall__col--wide{display:none}.wall__tile{aspect-ratio:1;border-radius:18px;overflow:hidden;background:var(--bg-2);box-shadow:0 20px 40px -20px #000c}.wall__tile img{width:100%;height:100%;object-fit:cover}@keyframes drift{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.welcome__veil{position:absolute!important;top:0;right:0;bottom:0;left:0;z-index:0!important;background:linear-gradient(180deg,rgba(3,11,31,.55) 0%,rgba(3,11,31,.35) 30%,rgba(3,11,31,.92) 62%,var(--bg) 82%),radial-gradient(80% 50% at 50% 100%,rgba(30,107,255,.35),transparent 70%)}.welcome__content{margin-top:auto;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 var(--gutter) 28px;width:100%;max-width:560px;margin-inline:auto}.wordmark{display:flex;justify-content:center;font-family:var(--font-display);font-size:clamp(3.4rem,17vw,7rem);font-weight:800;letter-spacing:-.045em;line-height:.9}.wordmark__photo{color:var(--white)}.wordmark__gen{background:linear-gradient(180deg,#8cc2ff 0%,var(--blue-bright) 45%,var(--blue) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--blue-bright);filter:drop-shadow(0 6px 26px rgba(30,107,255,.55))}.welcome__tagline{margin:18px 0 8px;font-family:var(--font-display);font-size:clamp(1.3rem,5.4vw,1.7rem);font-weight:700;letter-spacing:-.02em}.welcome__sub{margin:0 0 28px;max-width:30ch;color:var(--text-soft);font-size:1rem;line-height:1.45}.welcome__content .btn{min-width:220px}.welcome__footer{display:flex;justify-content:center;padding:0 var(--gutter) calc(18px + var(--safe-bottom))}.powered-by{display:inline-flex;align-items:baseline;gap:7px;margin:0;padding:8px 6px;color:var(--text-faint)}.powered-by__label{font-size:.72rem;font-weight:500;letter-spacing:.04em}.powered-by__mark{font-family:var(--font-display);font-size:.9rem;font-weight:800;letter-spacing:.14em;color:var(--text-soft)}.is-intro .welcome__tagline,.is-intro .welcome__sub,.is-intro .welcome__footer,.is-intro .btn{opacity:0;animation:rise .9s var(--ease) forwards}.is-intro .wordmark__photo,.is-intro .wordmark__gen{display:inline-block;opacity:0;animation:wordmark-in 1s var(--ease) forwards}.is-intro .wordmark__photo{animation-delay:.25s}.is-intro .wordmark__gen{animation-delay:.45s}.is-intro .welcome__tagline{animation-delay:.8s}.is-intro .welcome__sub{animation-delay:.95s}.is-intro .welcome__footer{animation-delay:1.5s}.is-intro .btn{animation:rise .9s var(--ease) 1.15s forwards,glow 2.6s var(--ease) 2.2s infinite}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes wordmark-in{0%{opacity:0;transform:translateY(30px) scale(.96);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}.is-intro .wordmark__gen{animation-name:wordmark-in-gen}@keyframes wordmark-in-gen{0%{opacity:0;transform:translateY(30px) scale(.96);filter:blur(8px) drop-shadow(0 6px 26px rgba(30,107,255,0))}to{opacity:1;transform:none;filter:blur(0) drop-shadow(0 6px 26px rgba(30,107,255,.55))}}@media (min-width: 900px){.wall{top:-25%;right:-8%;bottom:-25%;left:-8%;grid-template-columns:repeat(5,1fr)}.wall__col--wide{display:flex}.welcome__veil{background:linear-gradient(180deg,rgba(3,11,31,.5) 0%,rgba(3,11,31,.4) 35%,rgba(3,11,31,.9) 68%,var(--bg) 88%),radial-gradient(60% 50% at 50% 100%,rgba(30,107,255,.35),transparent 70%)}}.screen--picker{padding-bottom:calc(20px + var(--safe-bottom))}.screen--picker>*{flex-shrink:0}.picker__head{padding:4px var(--gutter) 18px;text-align:center}.carousel{--item-w: max(220px, min(84vw, 460px, calc(100dvh - 380px) ));display:flex;gap:16px;padding:14px calc((100% - var(--item-w) * var(--last-arw, 1)) / 2) 18px calc((100% - var(--item-w) * var(--first-arw, 1)) / 2);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;outline:none}.carousel.is-single{overflow:hidden;scroll-snap-type:none;touch-action:pan-y}.carousel::-webkit-scrollbar{display:none}.carousel__item{flex:none;width:calc(var(--item-w) * var(--arw, 1));aspect-ratio:var(--ar, 1);padding:0;border:0;border-radius:var(--radius);overflow:hidden;background:var(--bg-2);scroll-snap-align:center;cursor:pointer;opacity:.45;transform:scale(.88);box-shadow:0 30px 60px -30px #000000e6;transition:transform .5s var(--ease),opacity .5s var(--ease),box-shadow .5s var(--ease)}.carousel__item img{width:100%;height:100%;object-fit:cover}.carousel__item.is-active{opacity:1;transform:none;box-shadow:0 40px 80px -30px #1e6bff8c,0 0 0 1px #ffffff24}.carousel__item.is-active:active{transform:scale(.98)}.carousel:focus-visible .carousel__item.is-active{outline:3px solid var(--blue-soft);outline-offset:4px}.carousel__item--skeleton{opacity:1;transform:none;background:linear-gradient(100deg,var(--bg-2) 30%,var(--bg-3) 50%,var(--bg-2) 70%);background-size:250% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-250% 0}}.carousel__dots{display:flex;justify-content:center;gap:8px;margin-bottom:6px}.carousel__dot{width:7px;height:7px;border-radius:999px;background:#ffffff47;transition:width .35s var(--ease),background-color .35s}.carousel__dot.is-active{width:22px;background:var(--white)}.picker__foot{width:100%;max-width:480px;margin:0 auto;padding:10px var(--gutter) 0;text-align:center}.picker__meta{margin-bottom:18px;min-height:64px}.picker__name{font-size:1.35rem;font-weight:800}.picker__desc{margin:4px 0 0;color:var(--text-soft)}.recents{width:100%;max-width:560px;margin:30px auto 0;padding:0 var(--gutter)}.recents__title{margin-bottom:12px;font-family:var(--font-body);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.recents__row{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.recents__row::-webkit-scrollbar{display:none}.recents__item{flex:none;width:76px;height:76px;padding:0;border:0;border-radius:14px;overflow:hidden;background:var(--bg-2);cursor:pointer;box-shadow:inset 0 0 0 1px var(--line);transition:transform .2s var(--ease)}.recents__item:active{transform:scale(.94)}.recents__item img{width:100%;height:100%;object-fit:cover}@media (min-height: 820px){.picker__head{padding-top:16px}}.screen--group{padding-bottom:calc(20px + var(--safe-bottom))}.group__head{padding:4px var(--gutter) 14px;text-align:center}.group__sub{margin:8px auto 0;max-width:34ch;color:var(--text-dim, rgba(255, 255, 255, .72));font-size:.95rem}.group__search{padding:0 var(--gutter) 12px}.group__search input{width:100%;min-height:48px;padding:0 16px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:#ffffff0f;color:inherit;font:inherit}.group__search input:focus{outline:2px solid var(--accent, #1e6bff);outline-offset:2px}.group__list{display:grid;gap:10px;padding:0 var(--gutter);width:100%;max-width:560px;margin:0 auto}.group-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;width:100%;min-height:76px;padding:10px 14px 10px 10px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:#ffffff0d;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .08s}.group-card:hover,.group-card:focus-visible{border-color:var(--accent, #1e6bff);background:#1e6bff1f;outline:none}.group-card:active{transform:scale(.99)}.group-card.is-last{border-color:#1e6bff99}.group-card__thumbs{display:flex}.group-card__thumbs img{width:46px;height:56px;object-fit:cover;border-radius:8px;border:2px solid #030b1f;background:#0d1a3a}.group-card__thumbs img+img{margin-left:-18px}.group-card__text{display:grid;gap:2px;min-width:0}.group-card__name{font-weight:700;font-size:1rem;line-height:1.25}.group-card__types{font-size:.78rem;color:#ffffff9e}.group-card__arrow{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.6}.group__empty{padding:24px var(--gutter);text-align:center;color:#ffffff9e}.group__all{display:block;margin:18px auto 0;padding:10px 16px;border:0;background:none;color:#ffffffc7;font:inherit;font-size:.9rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.picker__group{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:6px 6px 6px 14px;border-radius:999px;background:#ffffff14;font-size:.85rem;font-weight:600}.picker__group button{padding:4px 10px;border:0;border-radius:999px;background:#ffffff24;color:inherit;font:inherit;font-size:.78rem;cursor:pointer}.carousel__item{position:relative}.carousel__type{position:absolute;top:10px;left:10px;padding:4px 10px;border-radius:999px;background:#030b1fc7;color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;pointer-events:none}.carousel__item.is-other-group:not(.is-active){opacity:.2}.screen--capture{overflow:hidden;background:#01050f}.stage{flex:1;min-height:0;display:flex;justify-content:center;padding:calc(64px + var(--safe-top)) 12px 8px}.stage__frame{position:relative;width:100%;max-width:640px;height:100%;border-radius:24px;overflow:hidden;background:radial-gradient(50% 40% at 50% 42%,rgba(169,208,255,.16),transparent 70%),#0b1530;box-shadow:0 30px 80px -30px #1e6bff80,0 0 0 1px #ffffff14}.stage__frame video,.stage__frame>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.stage__frame video.is-mirrored{transform:scaleX(-1)}.face-guide{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;transition:opacity .3s var(--ease)}.face-guide__dim{fill:#01050f;fill-opacity:.55;fill-rule:evenodd;stroke:none}.face-guide__shape{stroke:var(--white);stroke-width:3;filter:drop-shadow(0 0 10px rgba(77,155,255,.9));animation:guide 2.4s ease-in-out infinite}.face-guide__scan{stroke:var(--blue-bright);stroke-width:2;stroke-linecap:round;opacity:.6;filter:drop-shadow(0 0 8px var(--blue-bright));animation:scan 2.8s ease-in-out infinite alternate}.stage__frame:has(>img:not([hidden])) .face-guide{opacity:0}@keyframes guide{0%,to{opacity:.75}50%{opacity:1}}@keyframes scan{0%{transform:translateY(0);opacity:.2}50%{opacity:.9}to{transform:translateY(var(--scan-dist, 240px));opacity:.2}}.stage__count{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--font-display);font-size:clamp(5rem,30cqw,9rem);font-weight:800;color:var(--white);text-shadow:0 10px 40px rgba(0,0,0,.6);pointer-events:none}.stage__count.is-tick{animation:tick 1s var(--ease) both}@keyframes tick{0%{opacity:0;transform:scale(1.6)}25%{opacity:1;transform:scale(1)}80%{opacity:1}to{opacity:0;transform:scale(.8)}}.stage__flash{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--white);opacity:0;pointer-events:none}.stage__flash.is-on{animation:flash .55s ease-out}@keyframes flash{0%{opacity:.95}to{opacity:0}}.camera-fallback{padding:0 var(--gutter) 6px;text-align:center;color:var(--text-soft)}.camera-fallback p{margin:0 auto;max-width:32ch}.capture__controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;justify-items:center;padding:10px 24px calc(28px + var(--safe-bottom))}.round-btn{position:relative;display:grid;place-items:center;width:54px;height:54px;border:0;border-radius:50%;background:var(--glass);color:var(--white);cursor:pointer;box-shadow:inset 0 0 0 1px var(--line);transition:transform .15s var(--ease),background-color .2s}.round-btn:active{transform:scale(.92)}.round-btn.is-on{background:var(--white);color:var(--bg)}.round-btn input[type=file],.shutter input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.round-btn:has(input:focus-visible),.shutter:has(input:focus-visible){outline:3px solid var(--blue-soft);outline-offset:3px}.round-btn__badge{position:absolute;top:-4px;right:-6px;padding:2px 6px;border-radius:999px;background:var(--blue);color:var(--white);font-size:.7rem;font-weight:800}.shutter{position:relative;display:grid;place-items:center;width:84px;height:84px;padding:0;border:0;border-radius:50%;background:none;cursor:pointer}.shutter__ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:4px solid var(--white);box-shadow:0 0 30px #4d9bff99}.shutter__core{width:66px;height:66px;border-radius:50%;background:var(--white);transition:transform .15s var(--ease),background-color .2s}.shutter:active .shutter__core{transform:scale(.86);background:var(--blue-soft)}.capture__review{display:grid;grid-template-columns:auto 1fr;gap:12px;width:100%;max-width:520px;margin:0 auto;padding:10px var(--gutter) calc(28px + var(--safe-bottom));animation:rise .5s var(--ease) both}.capture__consent{grid-column:1 / -1;margin:0;font-size:.72rem;line-height:1.45;text-align:center;color:var(--text-faint)}.capture__consent a{color:var(--text-soft)}.screen--processing{overflow:hidden}.processing{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(24px + var(--safe-top)) var(--gutter) calc(28px + var(--safe-bottom));text-align:center}.processing__frame{position:relative;aspect-ratio:var(--ar, 1);width:min(80vw,380px,52dvh);margin-bottom:34px;border-radius:22px;overflow:hidden;background:var(--bg-2);box-shadow:0 40px 90px -30px #1e6bffbf,0 0 0 1px #ffffff1a;animation:breathe 3.2s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}.processing__art{width:100%;height:100%;object-fit:fill}.processing__window{position:absolute;overflow:hidden;clip-path:ellipse(50% 50% at 50% 50%)}.processing__window img{width:100%;height:100%;object-fit:cover;filter:blur(3px) saturate(.6) brightness(.9);animation:develop 6s ease-in-out infinite alternate}@keyframes develop{0%{filter:blur(6px) saturate(.4) brightness(.8);transform:scale(1.08)}to{filter:blur(1.5px) saturate(.9) brightness(1);transform:scale(1)}}.processing__sweep{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 30%,rgba(169,208,255,.05) 42%,rgba(169,208,255,.55) 50%,rgba(169,208,255,.05) 58%,transparent 70%);background-size:250% 100%;mix-blend-mode:screen;animation:sweep 2.6s ease-in-out infinite}@keyframes sweep{0%{background-position:130% 0}to{background-position:-30% 0}}.sparkles i{position:absolute;width:8px;height:8px;background:var(--white);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);opacity:0;animation:twinkle 2.4s ease-in-out infinite}.sparkles i:nth-child(1){top:18%;left:22%;animation-delay:0s}.sparkles i:nth-child(2){top:30%;right:18%;animation-delay:.5s;width:12px;height:12px}.sparkles i:nth-child(3){bottom:28%;left:16%;animation-delay:1s}.sparkles i:nth-child(4){bottom:18%;right:26%;animation-delay:1.4s;width:10px;height:10px}.sparkles i:nth-child(5){top:50%;left:50%;animation-delay:1.8s;width:14px;height:14px}.sparkles i:nth-child(6){top:12%;right:40%;animation-delay:2.1s}@keyframes twinkle{0%,to{opacity:0;transform:scale(.4) rotate(0)}50%{opacity:1;transform:scale(1) rotate(45deg)}}.processing__title{font-size:clamp(1.6rem,6.5vw,2rem);font-weight:800}.countdown{display:flex;align-items:baseline;gap:4px;margin:6px 0 0;font-family:var(--font-display);line-height:1}.countdown__num{font-size:clamp(2.4rem,11vw,3.2rem);font-weight:800;font-variant-numeric:tabular-nums;background:linear-gradient(180deg,var(--white),var(--blue-bright));-webkit-background-clip:text;background-clip:text;color:transparent}.countdown__unit{font-size:1rem;font-weight:700;color:var(--text-soft)}.countdown.is-over .countdown__num{font-size:clamp(1.4rem,6vw,1.7rem)}.countdown.is-over .countdown__unit{display:none}.processing__status{margin:8px 0 22px;min-height:1.5em;color:var(--text-soft);font-size:1.05rem}.processing__status.is-in{animation:rise .5s var(--ease) both}.progress{width:min(280px,70vw);height:6px;border-radius:999px;background:#ffffff1f;overflow:hidden}.progress__bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--blue-bright),var(--white));transform-origin:left center;transform:scaleX(0);transition:transform .4s linear}.processing__note{margin:18px 0 0;font-size:.88rem;color:var(--text-faint)}.screen--result{padding-bottom:calc(18px + var(--safe-bottom))}.screen--result>*{flex-shrink:0}.result{width:100%;max-width:520px;margin:0 auto;padding:0 var(--gutter);text-align:center}.result__title{margin:2px 0 18px;font-size:clamp(1.7rem,7vw,2.2rem);font-weight:800}.result__media{position:relative;margin:0 auto 22px;width:min(100%,58dvh)}.result__media img{width:100%;border-radius:var(--radius);box-shadow:0 40px 90px -30px #1e6bffb3,0 0 0 1px #ffffff1f;-webkit-touch-callout:default}.is-revealed .result__title{animation:rise .7s var(--ease) .1s both}.is-revealed .result__media img{animation:reveal .9s var(--ease-spring) both}.is-revealed .result__actions{animation:rise .7s var(--ease) .45s both}@keyframes reveal{0%{opacity:0;transform:scale(.86);filter:brightness(2.2) blur(6px)}60%{opacity:1;filter:brightness(1.1) blur(0)}to{transform:none;filter:none}}.confetti{position:absolute;top:40%;left:50%;width:0;height:0;pointer-events:none}.confetti i{position:absolute;width:9px;height:14px;border-radius:2px;opacity:0;animation:pop var(--d, 1.2s) cubic-bezier(.15,.7,.3,1) forwards}@keyframes pop{0%{opacity:1;transform:translate(0) rotate(0)}70%{opacity:1}to{opacity:0;transform:translate(var(--x),calc(var(--y) + 120px)) rotate(var(--r))}}.result__actions{display:grid;gap:12px}.result__row{display:grid;grid-template-columns:1.25fr 1fr;gap:10px}.result__row--single{grid-template-columns:1fr}.result__row .btn{padding:0 12px;gap:8px;white-space:nowrap}.btn--story{color:var(--white);background:linear-gradient(var(--bg-2),var(--bg-2)) padding-box,linear-gradient(45deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5) border-box;border:2px solid transparent}.btn--story:hover{background:linear-gradient(var(--bg-3),var(--bg-3)) padding-box,linear-gradient(45deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5) border-box}.result__again{display:flex;justify-content:center;flex-wrap:wrap;gap:4px;margin-top:2px}@media (max-width: 340px){.result__row{grid-template-columns:1fr}}.screen--details{background:radial-gradient(120% 70% at 50% 0%,var(--bg-3),var(--bg) 70%)}.details{width:100%;max-width:460px;margin:0 auto;padding:4px var(--gutter) calc(28px + var(--safe-bottom));display:flex;flex-direction:column;gap:14px}.details__title{font-family:var(--font-display);font-size:clamp(1.7rem,7vw,2.1rem);font-weight:800;letter-spacing:-.02em}.details__lead{margin:-6px 0 4px;color:var(--text-soft)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label,.details__optional legend{font-size:.9rem;font-weight:600;color:var(--text-soft)}.req{color:var(--blue-bright)}.field input,.field select{width:100%;min-height:50px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:var(--glass);color:var(--text);font:inherit;font-size:16px;appearance:none;-webkit-appearance:none;transition:border-color .2s,background-color .2s}.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a9d0ff' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px;padding-right:40px}.field select option{color:#10183a}.field input::placeholder{color:var(--text-faint)}.field input:focus,.field select:focus{outline:none;border-color:var(--blue-bright);background:var(--glass-strong)}.field input[aria-invalid=true]{border-color:var(--danger)}.field-row{display:grid;grid-template-columns:1fr 1.4fr;gap:12px}.details__optional{display:flex;flex-direction:column;gap:14px;margin:6px 0 0;padding:14px;border:1px solid var(--line);border-radius:var(--radius)}.details__optional legend{padding:0 6px}.details__opt{font-weight:400;color:var(--text-faint)}.check{display:grid;grid-template-columns:24px 1fr;gap:10px;align-items:start;font-size:.88rem;line-height:1.45;color:var(--text-soft);cursor:pointer}.check input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--blue)}.check a,.legal-links a{color:var(--blue-soft)}.details__error{margin:0;padding:10px 14px;border-radius:12px;background:#ff6b7a1f;color:var(--danger);font-size:.92rem}.welcome__footer{flex-direction:column;align-items:center;gap:2px}.legal-links{display:flex;gap:16px;font-size:.8rem}.legal-links a{color:var(--text-faint);text-decoration:none}.legal-links a:hover{color:var(--text-soft);text-decoration:underline}
