:root{--fm-teal:#00d89d;--fm-green:#1a7a4e;--fm-green-dark:#0f5234;--fm-green-light:#e0f2e9;--fm-pink:#e06fa0;--fm-pink-dark:#c4527e;--fm-pink-light:#fdeef5;--fm-yellow:#f9b515;--fm-orange:#df6716;--fm-hero-bg:linear-gradient(160deg, #041f12 0%, #0f4a28 45%, #123d25 100%);--fm-dark-bg:linear-gradient(135deg, #081a10 0%, #122135 55%, #1e0d18 100%);--fm-btn-primary:#1a7a4e;--fm-btn-hover:#0f5234;--fm-card-radius:16px;--fm-upload-radius:20px;--fm-hero-grid:#ffffff0d;--fm-section-grid:#1a7a4e0f}[data-theme=dark]{--fm-green-light:#0f2e1c;--fm-pink-light:#2d1220;--fm-hero-bg:linear-gradient(160deg, #020e07 0%, #0a3019 45%, #0e2a16 100%);--fm-hero-grid:#ffffff0a;--fm-section-grid:#1a7a4e17}.fm-hero{background:var(--fm-hero-bg);padding-top:calc(var(--nav-h) + 60px);color:#fff;padding-bottom:0;position:relative;overflow:hidden}.fm-hero:before{content:"";background-image:linear-gradient(var(--fm-hero-grid) 1px, transparent 1px), linear-gradient(90deg, var(--fm-hero-grid) 1px, transparent 1px);pointer-events:none;background-size:48px 48px;position:absolute;inset:0}.fm-hero__inner{grid-template-columns:1fr 1fr;align-items:center;gap:100px;max-width:1080px;margin:0 auto;padding:0 24px 20px;display:grid}.fm-hero__label{letter-spacing:.12em;text-transform:uppercase;color:#ffffff80;margin-bottom:20px;font-size:.75rem;font-weight:700}.fm-hero__title{margin-bottom:20px;font-size:clamp(1.8rem,4vw,2.7rem);font-weight:900;line-height:1.2}.fm-hero__sub{color:#fffc;margin-bottom:12px;font-size:clamp(.95rem,2vw,1.05rem);line-height:1.75}.fm-hero__aux{color:var(--ideal-btn-hover);margin-bottom:32px;font-size:.9rem;line-height:1.6}.fm-hero__btn,.fm-cta__btn{color:#1a1a1a;background:#f5c842;border:2px solid #f5c842;border-radius:50px;margin-bottom:12px;padding:16px 36px;font-size:1rem;font-weight:700;text-decoration:none;transition:background .18s,border-color .18s,transform .18s,box-shadow .18s;animation:2s ease-out infinite fm-btn-ripple;display:inline-block}.fm-hero__btn:hover,.fm-cta__btn:hover{background:#e0b230;border-color:#e0b230;animation:none;transform:translateY(-2px);box-shadow:0 8px 24px #f5c84273}@keyframes fm-btn-ripple{0%{transform:translateY(0);box-shadow:0 10px 30px #0000002e,0 0 #fff6}40%{transform:translateY(-3px);box-shadow:0 14px 34px #00000038,0 0 0 7px #ffffff26}70%{transform:translateY(-2px);box-shadow:0 12px 30px #0000002e,0 0 0 14px #fff0}to{transform:translateY(0);box-shadow:0 10px 30px #0000002e,0 0 #fff0}}.fm-hero__sub-cta{color:#ffffff80;margin-top:10px;font-size:.82rem;display:block}.fm-hero__visual{justify-content:center;display:flex}.fm-hero__visual img{width:100%;max-width:100%}.fm-hero__wave{width:100%;margin-bottom:-2px;line-height:0}.fm-hero__wave svg{width:100%;height:80px}@media (width<=768px){.fm-hero{padding-top:calc(var(--nav-h) - 40px)}.fm-hero__inner{text-align:center;grid-template-columns:1fr;gap:0}.fm-hero__visual{order:-1}.fm-hero__sub-cta{text-align:center}}.fm-how{background:var(--clr-surface);padding:3rem 1.5rem;position:relative;overflow:hidden}.fm-how:before{content:"";pointer-events:none;z-index:0;background-size:48px 48px;position:absolute;inset:0}.fm-how__inner,.fm-how-feature{z-index:1;position:relative}.fm-how__inner{grid-template-columns:1.05fr .95fr;align-items:start;gap:3rem;max-width:1080px;margin:0 auto;display:grid}.fm-how__visual{position:relative}.fm-how__heading{margin-bottom:2.5rem}.fm-how__label{letter-spacing:.12em;text-transform:uppercase;color:var(--fm-green);background:var(--fm-green-light);border-radius:50px;margin-bottom:1rem;padding:4px 14px;font-size:.85rem;font-weight:700;display:inline-block}[lang=en] .fm-how__label{letter-spacing:.01rem}.fm-how__title{color:var(--clr-text);margin-bottom:1.5rem;font-size:clamp(1.5rem,3.5vw,2.2rem);font-weight:800;line-height:1.08}.fm-how__sub{max-width:32rem;color:var(--clr-text-muted);font-size:1.05rem;line-height:1.8}.fm-how__image-wrap{border-radius:2.5rem;position:relative;overflow:hidden}.fm-how__image-wrap img{width:100%;height:auto;display:block}.fm-how__caption{text-align:center;pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;bottom:4rem;left:50%;transform:translate(-50%)}.fm-how__caption span:first-child{color:var(--fm-green);font-family:Allura,cursive;font-size:2rem;font-weight:500}.fm-how__caption span:last-child{color:var(--fm-yellow);margin-top:-.3rem;font-family:Allura,cursive;font-size:1.3rem;font-weight:500}.fm-how__steps{flex-direction:column;gap:2rem;margin-top:2rem;display:flex;position:relative}.fm-how__steps:before{content:"";opacity:.7;background:linear-gradient(#d4bfff00 0%,#d4bfffe6 20% 80%,#d4bfff00 100%);width:1px;position:absolute;top:7rem;bottom:7rem;left:50%}.fm-how-card{z-index:1;position:relative}.fm-how-card__top{background:var(--clr-bg);border:1px solid var(--clr-border);box-shadow:0 10px 40px var(--clr-shadow);backdrop-filter:blur(14px);border-radius:2rem;grid-template-columns:auto 1fr auto;padding:1.6rem;display:grid;position:relative}[lang=zh-hans] .fm-how-card__top{padding:2.2rem}[lang=zh-hant] .fm-how-card__top{padding:1.8rem}.fm-how-card__number{letter-spacing:-.06em;min-width:4.5rem;font-size:clamp(2rem,4vw,2.8rem);font-weight:800;line-height:1}.fm-how-card:first-child .fm-how-card__number{color:var(--fm-yellow)}.fm-how-card:nth-child(2) .fm-how-card__number{color:var(--fm-green)}.fm-how-card:nth-child(3) .fm-how-card__number{color:var(--fm-orange)}.fm-how-card:first-child .fm-how-card__tag{color:var(--fm-yellow)}.fm-how-card:nth-child(2) .fm-how-card__tag{color:var(--fm-green)}.fm-how-card:nth-child(3) .fm-how-card__tag{color:var(--fm-orange)}.fm-how-card__tag{margin-bottom:.5rem;font-size:.95rem;font-weight:700}.fm-how-card__title{letter-spacing:-.04em;color:var(--clr-text);margin-bottom:1rem;font-size:clamp(1rem,2.5vw,1.2rem);font-weight:800;line-height:1.25}.fm-how-card__desc{color:var(--clr-text-muted);font-size:clamp(.85rem,2vw,1rem);line-height:1.9}@media (width<=980px){.fm-how{padding:2rem 1.25rem}.fm-how__inner{grid-template-columns:1fr;gap:3rem}.fm-how__steps:before{display:none}.fm-how-card__icon{margin-top:1rem}.fm-how-feature{grid-template-columns:1fr}.fm-how-card__number{min-width:3.5rem}}@media (width<=640px){.fm-how__title{font-size:2rem}.fm-how__caption{bottom:2rem}.fm-how__caption span:first-child{font-size:1.5rem}.fm-how__caption span:last-child{font-size:1rem}.fm-how-card__top{padding:1.5rem}.fm-how-card__desc{line-height:1.7}}.fm-section{padding:80px 24px;position:relative;overflow:hidden}.fm-section--odd{background:var(--clr-bg)}.fm-section--even{background:var(--clr-surface)}.fm-section:before{content:"";pointer-events:none;z-index:0;background-size:48px 48px;position:absolute;inset:0}.fm-section__inner{z-index:1;grid-template-columns:1fr 1fr;align-items:center;gap:64px;max-width:1080px;margin:0 auto;display:grid;position:relative}.fm-section--even .fm-section__inner{direction:rtl}.fm-section--even .fm-section__inner>*{direction:ltr}.fm-section__subheading{letter-spacing:.07em;text-transform:uppercase;color:var(--fm-green);background:var(--fm-green-light);border-radius:50px;margin-bottom:12px;padding:4px 14px;font-size:.85rem;font-weight:700;display:inline-block}[lang=en] .fm-section__subheading{letter-spacing:.01rem}.fm-faq__label{letter-spacing:.07em;text-transform:uppercase;color:var(--fm-green);background:var(--fm-green-light);border-radius:50px;margin:0 auto 20px;padding:4px 14px;font-size:.85rem;font-weight:700;display:table}.fm-section__heading{color:var(--clr-text);margin-bottom:20px;font-size:clamp(1.5rem,3.5vw,2.2rem);font-weight:800;line-height:1.6}[lang=en] .fm-section__heading{font-size:clamp(1.3rem,3.5vw,2rem)}[lang=ja] .fm-section__heading{font-size:clamp(1.16rem,3.5vw,1.8rem)}[lang=zh-hans] .fm-section__heading{font-size:clamp(1.4rem,3.5vw,2.1rem)}[lang=zh-hant] .fm-section__heading{font-size:clamp(1.25rem,3.5vw,1.95rem)}.fm-section__copy{color:var(--clr-text-muted);margin-bottom:28px;font-size:clamp(.92rem,2vw,1rem);line-height:1.9}.fm-section__tags{flex-wrap:wrap;gap:8px;margin-bottom:32px;display:flex}.fm-section__tag{border:1px solid var(--clr-border);color:var(--clr-text-muted);background:0 0;border-radius:50px;padding:6px 14px;font-size:clamp(.78rem,2vw,.82rem);font-weight:600;display:inline-block}.fm-section__read-more{color:var(--fm-green);border-bottom:2px solid #0000;margin-bottom:25px;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block}.fm-section__read-more:hover{border-bottom:2px solid var(--fm-green);text-decoration:none}.fm-section__visual{justify-content:center;align-items:center;display:flex}.fm-section__img{aspect-ratio:3.9/3;object-fit:cover;border-radius:20px;width:100%;max-width:480px;display:block}.fm-section__img--1{aspect-ratio:3/3;max-width:420px}.fm-section__img--2{aspect-ratio:4/3;max-width:440px}.fm-section__img--3{aspect-ratio:19/9;max-width:600px}@media (width<=768px){.fm-section__inner{direction:ltr;grid-template-columns:1fr;gap:36px}.fm-section--even .fm-section__inner{direction:ltr}.fm-section__visual{order:-1}.fm-section__img--2{aspect-ratio:14/9;max-width:100%}}.fm-stats__label,.fm-cta__label{letter-spacing:.16em;text-transform:uppercase;color:var(--fm-teal);border-radius:50px;margin:0 auto 20px;padding:4px 14px;font-size:.85rem;font-weight:700;display:table}.fm-stats__sub,.fm-faq__sub{text-align:center;color:var(--clr-text-muted);margin-bottom:50px;font-size:clamp(.92rem,2vw,1rem);line-height:1.9}.fm-stats{background:var(--fm-dark-bg);color:#fff;--ring-inner:#0f1e2a;padding:96px 24px}.fm-stats__inner{max-width:860px;margin:0 auto}.fm-stats__title{text-align:center;margin-bottom:30px;font-size:clamp(1.5rem,3.5vw,2.2rem);font-weight:800}.fm-stats__grid{grid-template-columns:repeat(2,1fr);gap:28px;margin-bottom:24px;display:grid}.fm-stat{text-align:center;background:#ffffff12;border:1px solid #ffffff1f;border-radius:20px;flex-direction:column;align-items:center;gap:12px;padding:40px 32px;display:flex}.fm-stat__number{color:var(--fm-green);font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;line-height:1.2}.fm-stat__desc{color:#ffffffd1;font-size:.92rem;line-height:1.7}.fm-stat__desc strong{color:var(--fm-green);font-weight:700}.fm-stat__source{color:#ffffff61;margin-top:auto;font-size:.72rem;font-style:italic}.fm-stats__note{text-align:center;color:#ffffff59;font-size:.75rem;font-style:italic}.fm-face-tiles{flex-direction:row;justify-content:center;align-items:center;gap:10px;margin:25px 0;display:flex}.fm-face-tile{background:#ffffff1f;border:2px solid #ffffff2e;border-radius:50%;flex-shrink:0;width:44px;height:44px;transition:transform .18s;position:relative}.fm-face-tile:before{content:"";background:#fff6;border-radius:50%;width:4px;height:4px;position:absolute;top:37%;left:28%;box-shadow:11px 0 #fff6}.fm-face-tile:after{content:"";border:2px solid #ffffff52;border-top:none;border-radius:0 0 99px 99px;width:13px;height:6px;position:absolute;bottom:26%;left:50%;transform:translate(-50%)}.fm-face-tile--on{background:var(--fm-green);border-color:var(--fm-green);transform:scale(1.15);box-shadow:0 0 20px #33a4748c}.fm-face-tile--on:before{background:#ffffffeb;box-shadow:11px 0 #ffffffeb}.fm-face-tile--on:after{border-color:#ffffffd9}.fm-bignum__label{letter-spacing:.06em;text-transform:uppercase;color:#ffffff73;margin-bottom:4px;font-size:.78rem;font-weight:600}.fm-bignum__number{color:var(--fm-green);letter-spacing:-.02em;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:900;line-height:1.1}[lang=en] .fm-bignum__number,[lang=en] .fm-stat__number{font-size:clamp(1.8rem,4vw,2rem)}.fm-timeline{width:88%;margin:20px 0 26px}.fm-timeline__years{color:var(--clr-text-muted);justify-content:space-between;align-items:center;margin-bottom:10px;padding:0 8px;font-size:.92rem;font-weight:700;display:flex}.fm-timeline__track{justify-content:center;align-items:center;gap:0;margin-bottom:12px;display:flex}.fm-timeline__dot{background:var(--fm-green);border-radius:50%;width:12px;height:12px;box-shadow:0 0 12px #33a47473}.fm-timeline__line{background:linear-gradient(90deg,#33a47440,#33a474d9);flex:1;height:2px;margin:0 6px}.fm-timeline__caption{text-align:center;letter-spacing:-.02em;color:#ffffffad;font-size:.92rem;font-weight:600}.fm-stats--group2 .fm-stats__grid{grid-template-columns:repeat(3,1fr);gap:16px}.fm-stat--bar{text-align:left;align-items:flex-start;gap:8px;padding:24px 20px}.fm-bar-stat__header{flex-direction:column;align-items:flex-start;gap:12px;width:100%;display:flex}.fm-bar-stat__number{color:var(--fm-green);font-size:clamp(1.8rem,3.5vw,2.3rem);font-weight:900;line-height:1}[lang=en] .fm-bar-stat__number{font-size:clamp(1.4rem,3.5vw,1.8rem);line-height:1.3}[lang=ja] .fm-bar-stat__number{font-size:clamp(1.8rem,3.5vw,2.1rem)}[lang=zh-hans] .fm-bar-stat__number,[lang=zh-hant] .fm-bar-stat__number{font-size:1.7rem}.fm-bar-stat__fraction{color:#ffffff80;font-size:.78rem;font-weight:600;line-height:1.4}.fm-bar-stat__track{background:#ffffff1a;border-radius:99px;width:100%;height:6px;margin:10px 0 6px;overflow:hidden}.fm-bar-stat__fill{height:100%;width:var(--val,0%);background:linear-gradient(90deg, var(--fm-green) 0%, #6fe0af 100%);border-radius:99px;transition:width 1.2s cubic-bezier(.16,1,.3,1)}.fm-bar-stat__desc{color:#ffffffad;margin:10px 0 5px;font-size:.82rem;line-height:1.65}.fm-bar-stat__desc strong{color:var(--fm-green);font-weight:700}@media (width<=680px){.fm-stats--group2 .fm-stats__grid{grid-template-columns:1fr;gap:12px}}@media (width<=600px){.fm-stats__grid{grid-template-columns:1fr;gap:14px}.fm-stat{padding:24px 20px}}.fm-usecases{background:var(--clr-bg);text-align:center;padding:72px 24px}.fm-usecases__inner{max-width:860px;margin:0 auto}.fm-usecases__title{color:var(--clr-text);margin-bottom:40px;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:800}.fm-usecases__grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.fm-usecase{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--fm-card-radius);flex-direction:column;align-items:center;gap:8px;padding:28px 16px;transition:transform .18s,box-shadow .18s;display:flex}.fm-usecase:hover{box-shadow:0 8px 24px var(--clr-shadow);transform:translateY(-3px)}.fm-usecase__emoji{font-size:2.4rem;line-height:1}.fm-usecase__label{color:var(--clr-text);font-size:1rem;font-weight:700}.fm-usecase__desc{color:var(--clr-text-muted);font-size:.82rem}.fm-usecases__footer{color:var(--clr-text-muted);font-size:.88rem}@media (width<=600px){.fm-usecases__grid{grid-template-columns:repeat(2,1fr)}}.fm-howto{background:var(--clr-surface);padding:72px 24px}.fm-howto__inner{max-width:640px;margin:0 auto}.fm-howto__title{text-align:center;color:var(--clr-text);margin-bottom:40px;font-size:clamp(1.3rem,3vw,1.9rem);font-weight:800}.fm-howto__steps{flex-direction:column;gap:16px;display:flex}.fm-step{background:var(--clr-bg);border:1px solid var(--clr-border);border-radius:var(--fm-card-radius);align-items:center;gap:20px;padding:22px 24px;display:flex}.fm-step__icon{flex-shrink:0;font-size:1.6rem}.fm-step__num{color:var(--fm-green);letter-spacing:.06em;flex-shrink:0;font-size:.72rem;font-weight:800}.fm-step__text{color:var(--clr-text);font-size:1rem;font-weight:600}.fm-faq{background:var(--clr-surface);padding:72px 24px}.fm-faq__inner{max-width:800px;margin:0 auto}.fm-faq__title{text-align:center;color:var(--clr-text);margin-bottom:36px;font-size:clamp(1.3rem,3vw,1.9rem);font-weight:800}.fm-faq__list{flex-direction:column;gap:12px;display:flex}.fm-faq__item{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--fm-card-radius);overflow:hidden}.fm-faq__item[open]{border-color:var(--fm-green)}.fm-faq__q{color:var(--clr-text);cursor:pointer;user-select:none;background:var(--clr-bg);justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;font-size:.95rem;font-weight:700;list-style:none;display:flex}.fm-faq__q::-webkit-details-marker{display:none}.fm-faq__q:after{content:"+";color:var(--fm-green);flex-shrink:0;font-size:1.2rem;font-weight:400;transition:transform .18s}.fm-faq__item[open] .fm-faq__q:after{transform:rotate(45deg)}.fm-faq__a{color:var(--clr-text-muted);border-top:1px solid var(--clr-border);background:var(--clr-bg);margin-top:0;padding:16px 20px 18px;font-size:.88rem;line-height:1.7}.fm-faq__a strong{color:var(--clr-text)}[data-theme=dark] .fm-faq__a strong{color:var(--fm-green)}.fm-cta{background:var(--fm-hero-bg);text-align:center;color:#fff;padding:80px 24px;position:relative;overflow:hidden}.fm-cta:before{content:"";pointer-events:none;background-size:48px 48px;position:absolute;inset:0}.fm-cta__bg{opacity:.35;z-index:1;pointer-events:none;background-image:url(/shared/images/illustrations/play/face-match/cta.webp);background-position:50%;background-repeat:no-repeat;position:absolute;inset:0}.fm-cta__inner{z-index:1;max-width:600px;margin:0 auto;position:relative}.fm-cta__title{margin-bottom:32px;font-size:clamp(1.5rem,3.5vw,2.2rem);font-weight:900;line-height:1.4}.fm-cta__sub{text-align:center;color:#fff9;margin-bottom:50px;font-size:clamp(.92rem,2vw,1rem);line-height:1.9}.fm-app{padding-top:calc(var(--nav-h) + 48px);background:var(--clr-bg);min-height:100dvh;padding-bottom:80px}.fm-app__inner{max-width:860px;margin:0 auto;padding:0 24px}.fm-app__header{text-align:center;margin-bottom:40px}.fm-app__title{color:var(--clr-text);margin-bottom:10px;font-size:clamp(1.6rem,3.5vw,2.2rem);font-weight:800}.fm-app__sub{color:var(--clr-text-muted);font-size:.95rem}.fm-model-loader{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--fm-card-radius);margin-bottom:32px;padding:20px 24px}.fm-model-loader__label{color:var(--clr-text-muted);align-items:center;gap:8px;margin-bottom:10px;font-size:.85rem;display:flex}.fm-model-loader__bar{background:var(--clr-border);border-radius:99px;height:6px;overflow:hidden}.fm-model-loader__fill{background:linear-gradient(90deg, var(--fm-green), var(--fm-pink));border-radius:99px;width:0%;height:100%;transition:width .4s}.fm-model-loader__spinner{border:2px solid var(--clr-border);border-top-color:var(--fm-green);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.8s linear infinite fm-spin}@keyframes fm-spin{to{transform:rotate(360deg)}}.fm-upload-grid{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:28px;display:grid}.fm-upload-box{aspect-ratio:1;border:2px dashed var(--clr-border);border-radius:var(--fm-upload-radius);background:var(--clr-surface);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:12px;transition:border-color .18s,background .18s,transform .18s;display:flex;position:relative;overflow:hidden}.fm-upload-box:hover{border-color:var(--fm-green);background:var(--fm-green-light);transform:translateY(-2px)}.fm-upload-box.has-image{border-style:solid;border-color:var(--fm-green)}.fm-upload-box.has-error{border-color:var(--clr-red);background:var(--clr-red-light)}.fm-upload-box__icon{font-size:2.4rem;line-height:1}.fm-upload-box__label{color:var(--clr-text-muted);text-align:center;font-size:.85rem;font-weight:600;line-height:1.5}.fm-upload-box__preview{object-fit:cover;border-radius:calc(var(--fm-upload-radius) - 2px);width:100%;height:100%;position:absolute;inset:0}.fm-upload-box__overlay{opacity:0;border-radius:calc(var(--fm-upload-radius) - 2px);color:#fff;background:#00000073;justify-content:center;align-items:center;font-size:.82rem;font-weight:600;transition:opacity .18s;display:flex;position:absolute;inset:0}.fm-upload-box.has-image:hover .fm-upload-box__overlay{opacity:1}.fm-upload-box__badge{background:var(--fm-green);color:#fff;border-radius:99px;padding:3px 8px;font-size:.72rem;font-weight:700;position:absolute;top:10px;right:10px}.fm-upload-input{display:none}@media (width<=540px){.fm-upload-grid{grid-template-columns:1fr}.fm-upload-box{aspect-ratio:4/3}}.fm-upload-box.is-dragover{border-color:var(--fm-green);background:#22c55e0f;transform:scale(1.02)}.fm-name-grid{grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 20px;display:grid}.fm-name-input{border:1.5px solid var(--clr-border);width:100%;font-size:.9rem;font-family:var(--font);color:var(--clr-text);background:var(--clr-bg);box-sizing:border-box;border-radius:10px;padding:10px 14px;transition:border-color .2s}.fm-name-input:focus{border-color:var(--fm-green);outline:none}.fm-name-input::placeholder{color:var(--clr-text-muted)}@media (width<=480px){.fm-name-grid{grid-template-columns:1fr;gap:8px}}.fm-analyze-btn{background:linear-gradient(90deg, var(--fm-green) 0%, var(--fm-pink) 100%);color:#fff;cursor:pointer;border:none;border-radius:50px;width:100%;padding:18px;font-size:1.05rem;font-weight:700;transition:opacity .18s,transform .18s,box-shadow .18s;display:block;box-shadow:0 6px 24px #33a4744d}.fm-analyze-btn:hover:not(:disabled){opacity:.92;transform:translateY(-2px);box-shadow:0 10px 32px #33a4746b}.fm-analyze-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.fm-toast{background:var(--clr-text);color:var(--clr-bg);opacity:0;z-index:9999;white-space:nowrap;pointer-events:none;border-radius:99px;padding:14px 28px;font-size:.92rem;font-weight:600;transition:transform .25s,opacity .25s;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)scale(.9)}.fm-toast.is-visible{opacity:1;transform:translate(-50%,-50%)scale(1)}.fm-result-hero{background:var(--fm-hero-bg);padding-top:calc(var(--nav-h) + 48px);color:#fff;padding-bottom:0;position:relative;overflow:hidden}.fm-result-hero__inner{text-align:center;max-width:860px;margin:0 auto;padding:0 24px 32px}.fm-result-hero__title{margin-bottom:8px;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:800}.fm-result-hero__sub{color:#ffffffb8;font-size:.95rem}.fm-result-hero__wave{width:100%;margin-bottom:-2px;line-height:0}.fm-result-hero__wave svg{width:100%;height:60px}.fm-result{background:var(--clr-bg);padding:48px 24px 80px}.fm-result__inner{max-width:860px;margin:0 auto}.fm-faces{grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;margin-bottom:36px;display:grid}.fm-face{flex-direction:column;align-items:center;gap:12px;display:flex}.fm-face__img-wrap{border:3px solid var(--clr-border);border-radius:50%;flex-shrink:0;width:140px;height:140px;overflow:hidden}.fm-face__img{object-fit:cover;width:100%;height:100%}.fm-face__label{color:var(--clr-text-muted);font-size:.85rem;font-weight:600}.fm-face__age{color:var(--clr-text);font-size:.9rem;font-weight:700}.fm-faces__vs{color:var(--clr-text-muted);font-size:1.4rem;font-weight:900}@media (width<=480px){.fm-faces{grid-template-rows:auto auto;grid-template-columns:1fr 1fr}.fm-faces__vs{text-align:center;order:3;grid-column:1/-1}}.fm-gauge{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--fm-card-radius);text-align:center;margin-bottom:24px;padding:32px 28px}.fm-gauge__label{color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:16px;font-size:.82rem;font-weight:600}.fm-gauge__score{background:linear-gradient(90deg, var(--fm-green), var(--fm-pink));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:16px;font-size:clamp(3rem,8vw,4.8rem);font-weight:900;line-height:1}.fm-gauge__bar-wrap{background:var(--clr-border);border-radius:99px;height:12px;margin-bottom:12px;overflow:hidden}.fm-gauge__bar{background:linear-gradient(90deg, var(--fm-green), var(--fm-pink));border-radius:99px;height:100%;transition:width 1.2s cubic-bezier(.16,1,.3,1)}.fm-gauge__desc{color:var(--clr-text-muted);font-size:.95rem}.fm-detail-grid{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px;display:grid}.fm-detail-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--fm-card-radius);padding:20px}.fm-detail-card__bar-wrap{background:var(--clr-border);border-radius:99px;height:6px;margin-bottom:8px;overflow:hidden}.fm-detail-card__score{color:var(--fm-green);font-size:1.1rem;font-weight:800}@media (width<=540px){.fm-detail-grid{grid-template-columns:1fr}}.fm-game-section{background:var(--fm-dark-bg);border-radius:var(--fm-card-radius);color:#fff;text-align:center;margin-bottom:24px;padding:36px 28px}.fm-game-section__title{margin-bottom:8px;font-size:1.2rem;font-weight:700}.fm-game-section__desc{color:#ffffffb3;margin-bottom:24px;font-size:.9rem}.fm-game-btns{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.fm-game-btn{color:#fff;cursor:pointer;background:#ffffff24;border:1.5px solid #ffffff59;border-radius:50px;padding:12px 24px;font-size:.9rem;font-weight:600;transition:background .18s,border-color .18s,transform .18s}.fm-game-btn:hover{background:#ffffff42;border-color:#ffffffb3;transform:translateY(-2px)}.fm-game-btn--active{background:linear-gradient(90deg, var(--fm-green), var(--fm-pink));border-color:#0000}.fm-game-canvas-wrap{flex-direction:column;align-items:center;gap:16px;margin-top:24px;display:none}.fm-game-canvas-wrap.is-active{display:flex}.fm-game-canvas{border:2px solid #fff3;border-radius:16px;max-width:100%}.fm-game-info{color:#ffffffd9;gap:24px;font-size:.9rem;font-weight:600;display:flex}.fm-whack-grid{grid-template-columns:repeat(4,1fr);gap:10px;max-width:360px;margin-top:24px;display:grid}.fm-mole-hole{aspect-ratio:1;cursor:pointer;user-select:none;background:#ffffff14;border-radius:50%;justify-content:center;align-items:center;font-size:1.6rem;transition:transform .1s,background .1s;display:flex}.fm-mole-hole:active{transform:scale(.9)}.fm-mole-hole.has-mole{background:#33a47440}.fm-result-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px;display:flex}.fm-action-btn{cursor:pointer;border:none;border-radius:50px;align-items:center;gap:8px;padding:13px 26px;font-size:.9rem;font-weight:600;text-decoration:none;transition:transform .18s,box-shadow .18s;display:inline-flex}.fm-action-btn:hover{box-shadow:0 6px 16px var(--clr-shadow);transform:translateY(-2px)}.fm-action-btn--primary{background:linear-gradient(90deg, var(--fm-green), var(--fm-pink));color:#fff}.fm-action-btn--secondary{background:var(--clr-surface);color:var(--clr-text);border:1px solid var(--clr-border)}.fm-action-btn--ghost{color:var(--clr-text-muted);border:1px solid var(--clr-border);background:0 0}@media (width<=480px){.fm-action-btn{justify-content:center;width:100%}}.fm-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}.fm-toast--success{color:#fff;background:#22c55e}.fm-toast--error{color:#fff;background:#ef4444}.fm-toast--info{background:var(--clr-text);color:var(--clr-bg)}.fm-upload-box--loading{opacity:.6;pointer-events:none}.fm-upload-box--has-image .fm-upload-box__icon,.fm-upload-box--has-image .fm-upload-box__label{display:none}.fm-upload-box--has-image .fm-upload-box__overlay{opacity:1}.fm-app__nav{margin-bottom:12px}.fm-back-btn{color:var(--clr-text-muted);background:#7272721a;border:none;border-radius:50px;align-items:center;gap:4px;margin-bottom:20px;padding:10px 20px;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .15s;display:inline-flex}.fm-back-btn:hover{color:var(--fm-green)}.fm-upload-hint{color:var(--clr-text-muted);text-align:center;background:#ffc1071a;border:1px solid #ffc1074d;border-radius:12px;margin-bottom:24px;padding:12px 16px;font-size:.85rem;line-height:1.6}.fm-upload-box__label{flex-direction:column;align-items:center;gap:6px;display:flex}.fm-upload-box__click{color:var(--fm-green);font-size:.78rem;font-weight:700}.fm-loading-screen{-webkit-backdrop-filter:blur(6px);z-index:9000;background:#000000b8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fm-loading-screen[hidden]{display:none}.fm-loading-screen__content{background:var(--clr-surface);text-align:center;border-radius:24px;width:90%;max-width:380px;padding:48px 40px;box-shadow:0 24px 64px #0006}.fm-loading-screen__spinner{border:4px solid var(--clr-border);border-top-color:var(--fm-green);border-right-color:var(--fm-pink);border-radius:50%;width:52px;height:52px;margin:0 auto 24px;animation:.9s linear infinite fm-spin}.fm-loading-screen__title{color:var(--clr-text);margin-bottom:10px;font-size:1.25rem;font-weight:800}.fm-loading-screen__sub{color:var(--clr-text-muted);margin-bottom:28px;font-size:.88rem;line-height:1.6}.fm-loading-screen__bar{background:var(--clr-border);border-radius:99px;height:6px;margin-bottom:12px;overflow:hidden}.fm-loading-screen__fill{background:linear-gradient(90deg, var(--fm-green), var(--fm-pink));border-radius:99px;width:0%;height:100%;transition:width .6s;animation:1.6s ease-in-out infinite fm-progress-indeterminate}.fm-loading-screen__fill--done{animation:none;width:100%!important;margin-left:0!important}@keyframes fm-progress-indeterminate{0%{width:0%;margin-left:0%}50%{width:70%;margin-left:15%}to{width:0%;margin-left:100%}}.fm-loading-screen__hint{color:var(--clr-text-muted);font-size:.8rem}.fm-detail-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:32px;display:grid}.fm-detail-card{background:var(--clr-surface);border-radius:var(--fm-card-radius);text-align:center;box-shadow:0 2px 8px var(--clr-shadow);padding:18px 14px}.fm-detail-card__icon{margin-bottom:6px;font-size:1.6rem}.fm-detail-card__title{color:var(--clr-text-muted);margin-bottom:4px;font-size:.78rem;font-weight:600}.fm-detail-card__score{background:linear-gradient(90deg, var(--fm-green), var(--fm-pink));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800;line-height:1.1}.fm-detail-card__bar-wrap{background:var(--clr-border);border-radius:99px;height:4px;margin:8px 0;overflow:hidden}.fm-detail-card__bar{background:linear-gradient(90deg, var(--fm-green), var(--fm-pink));border-radius:99px;height:100%;transition:width 1s}.fm-detail-card__desc{color:var(--clr-text-muted);font-size:.72rem;line-height:1.4}.fm-whack-grid{grid-template-columns:repeat(4,1fr);gap:10px;padding:16px;display:grid}.fm-whack-hole{aspect-ratio:1;background:var(--clr-surface);cursor:pointer;user-select:none;border:2px solid var(--clr-border);border-radius:50%;justify-content:center;align-items:center;font-size:0;transition:transform .1s,background .15s;display:flex;position:relative;overflow:hidden}.fm-mole{pointer-events:none;font-size:2rem;line-height:1;transition:bottom .2s;position:absolute;bottom:-100%;left:50%;transform:translate(-50%)}.fm-mole:before{content:"🐹"}.fm-whack-hole.fm-active{background:var(--fm-green-light);border-color:var(--fm-green)}.fm-whack-hole.fm-active .fm-mole{bottom:0}.fm-whack-hole.fm-whacked{background:var(--fm-pink-light);transform:scale(.9)}.fm-game-canvas{touch-action:none;background:linear-gradient(#1e3a5f 0%,#2d6a8a 100%);border-radius:14px;display:block}@media (width<=480px){.fm-detail-grid{grid-template-columns:repeat(2,1fr)}.fm-whack-grid{gap:6px;padding:10px}}