:root{--bg: #f3f5f8;--text: #1f2937;--discover-flash-delay: 2s;--discover-flash-duration: 1.5s;--discover-banner-duration: 1.2s;--discover-banner-overlap: .3s;--discover-banner-delay: calc( var(--discover-flash-delay) + var(--discover-flash-duration) - var(--discover-banner-overlap) );--ease-elegant: cubic-bezier(.33, 1, .48, 1);--ease-banner-settle: cubic-bezier(.22, .61, .36, 1);--ease-breath: cubic-bezier(.45, .05, .25, 1);--flash-saturate-peak: 1.38;--flash-c1: 100, 210, 255;--flash-c2: 70, 145, 255;--flash-c3: 160, 140, 255;--flash-c4: 120, 240, 220;--flash-edge-soft: 64px;--flash-edge-fade: 32%}*,*:before,*:after{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}img,button{-webkit-user-drag:none;user-drag:none}button{touch-action:manipulation}.app{width:100%;height:100vh;height:100dvh;background:var(--bg);display:flex;flex-direction:column;overflow:hidden}.screen{display:none;flex:1;min-height:0;overflow:hidden}.screen.active{display:flex;flex-direction:column}#screen-discover{padding:0}.discover-bg{position:relative;display:flex;align-items:flex-start;justify-content:center;width:100%;height:100%;background-color:#f3f5f8;overflow:hidden}.discover-flash-fx{position:absolute;inset:0;z-index:30;pointer-events:none;overflow:hidden}.discover-flash-fx.is-playing{-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 5%,transparent var(--flash-edge-fade)),linear-gradient(to top,#000 0%,#000 5%,transparent var(--flash-edge-fade)),linear-gradient(to right,#000 0%,#000 4%,transparent 24%),linear-gradient(to left,#000 0%,#000 4%,transparent 24%);mask-image:linear-gradient(to bottom,#000 0%,#000 5%,transparent var(--flash-edge-fade)),linear-gradient(to top,#000 0%,#000 5%,transparent var(--flash-edge-fade)),linear-gradient(to right,#000 0%,#000 4%,transparent 24%),linear-gradient(to left,#000 0%,#000 4%,transparent 24%);-webkit-mask-composite:source-over;mask-composite:add}.discover-flash-sweep{position:absolute;inset:0;opacity:0;background:conic-gradient(from 0deg at 50% 50%,rgba(var(--flash-c1),.72),rgba(var(--flash-c2),.68) 60deg,rgba(var(--flash-c4),.62) 130deg,rgba(var(--flash-c3),.65),rgba(var(--flash-c1),.7) 290deg,rgba(var(--flash-c2),.72) 360deg);filter:blur(44px) saturate(1.28);mix-blend-mode:screen;will-change:opacity,transform}.discover-flash-prism{position:absolute;inset:0;opacity:0;will-change:opacity;background:linear-gradient(180deg,rgba(var(--flash-c2),.5) 0%,rgba(var(--flash-c2),.22) 42%,transparent 100%),linear-gradient(0deg,rgba(var(--flash-c3),.48) 0%,rgba(var(--flash-c3),.2) 42%,transparent 100%),linear-gradient(90deg,rgba(var(--flash-c1),.42) 0%,rgba(var(--flash-c1),.16) 45%,transparent 100%),linear-gradient(270deg,rgba(var(--flash-c2),.42) 0%,rgba(var(--flash-c2),.16) 45%,transparent 100%);background-size:100% var(--flash-edge-soft),100% var(--flash-edge-soft),var(--flash-edge-soft) 100%,var(--flash-edge-soft) 100%;background-position:top center,bottom center,left center,right center;background-repeat:no-repeat;mix-blend-mode:screen;filter:saturate(1.25)}.discover-flash-screen{position:absolute;inset:0;opacity:0;will-change:opacity;background:transparent}.discover-flash-vignette{position:absolute;inset:0;opacity:0;will-change:opacity;box-shadow:inset 0 52px 56px -28px rgba(var(--flash-c1),.38),inset 0 -52px 56px -28px rgba(var(--flash-c3),.34),inset 52px 0 56px -28px rgba(var(--flash-c2),.3),inset -52px 0 56px -28px rgba(var(--flash-c1),.3)}.discover-flash-border{position:absolute;inset:0;opacity:0;will-change:opacity;box-shadow:inset 0 0 48px 10px rgba(var(--flash-c2),.22),inset 0 0 0 1px rgba(var(--flash-c1),.28)}.discover-flash-fx.is-playing .discover-flash-sweep,.discover-flash-fx.is-playing .discover-flash-prism,.discover-flash-fx.is-playing .discover-flash-screen,.discover-flash-fx.is-playing .discover-flash-vignette,.discover-flash-fx.is-playing .discover-flash-border{animation-duration:var(--discover-flash-duration);animation-delay:var(--discover-flash-delay);animation-timing-function:var(--ease-breath);animation-fill-mode:forwards}.discover-flash-fx.is-playing .discover-flash-sweep{animation-name:discoverFlashSweep}.discover-flash-fx.is-playing .discover-flash-prism{animation-name:discoverFlashPrism}.discover-flash-fx.is-playing .discover-flash-vignette{animation-name:discoverFlashVignette}.discover-flash-fx.is-playing .discover-flash-border{animation-name:discoverFlashBorder}@keyframes discoverFlashSweep{0%,to{opacity:0;transform:rotate(0) scale(1)}22%{opacity:.45;transform:rotate(50deg) scale(1.01)}48%{opacity:.68;transform:rotate(120deg) scale(1.02)}68%{opacity:.58;transform:rotate(200deg) scale(1.01)}88%{opacity:.15;transform:rotate(280deg) scale(1)}}@keyframes discoverFlashPrism{0%,to{opacity:0}30%{opacity:.5}50%{opacity:.72}72%{opacity:.48}90%{opacity:.1}}@keyframes discoverFlashVignette{0%,to{opacity:0}35%{opacity:.6}52%{opacity:.78}72%{opacity:.52}90%{opacity:.14}}@keyframes discoverFlashBorder{0%,to{opacity:0}30%{opacity:.55}50%{opacity:.72}72%{opacity:.45}90%{opacity:.14}}.discover-canvas{position:relative;width:100%;max-width:100%}.discover-bg-image{width:100%;height:auto;display:block}.banner-anchor{position:absolute;top:50%;left:50%;z-index:31;width:90%;max-width:340px;transform:translate(-50%,-50%);pointer-events:none}.banner-anchor .banner-btn{pointer-events:auto}.banner-btn{width:100%;border:none;background:transparent;padding:0;cursor:pointer;opacity:0;transform:scale(.96) translateZ(0);transform-origin:center center;backface-visibility:hidden}.banner-btn.drop-in{will-change:transform,opacity;animation:bannerReveal var(--discover-banner-duration) var(--ease-banner-settle) var(--discover-banner-delay) forwards}.banner-btn.is-revealed{will-change:auto;opacity:1;transform:scale(1) translateZ(0)}.assist-banner{width:100%;display:block;pointer-events:none}@keyframes bannerReveal{0%{opacity:0;transform:scale(.96) translateZ(0)}48%{opacity:.75;transform:scale(.988) translateZ(0)}to{opacity:1;transform:scale(1) translateZ(0)}}.discover-flash-fx.is-done{display:none}.discover-flash-fx.is-done .discover-flash-sweep,.discover-flash-fx.is-done .discover-flash-prism,.discover-flash-fx.is-done .discover-flash-screen,.discover-flash-fx.is-done .discover-flash-vignette,.discover-flash-fx.is-done .discover-flash-border{will-change:auto}.detail-page{position:relative;width:100%;height:100%;background:linear-gradient(180deg,#dae2ec 31.04%,#dce2ec 73.47%);overflow:hidden}#screen-detail.enter-from-right{animation:pageEnterFromRight .32s cubic-bezier(.2,.8,.2,1)}@keyframes pageEnterFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}.status-bar-image{width:100%;height:auto;display:block}.detail-back-btn{position:absolute;top:54px;left:16px;width:24px;height:24px;border:none;background:transparent;color:#1f2937;font-size:28px;line-height:20px;padding:0;cursor:pointer}.detail-title{margin:0;position:absolute;top:54px;left:50%;transform:translate(-50%);font-size:20px;line-height:22px;font-weight:600;color:#000}.detail-question{margin:0;position:absolute;top:100px;left:50%;transform:translate(-50%);width:260px;text-align:center;font-size:16px;font-weight:600;color:#000;line-height:22px}.detail-photo-wrap{position:absolute;top:152px;left:50%;transform:translate(-50%);width:333px;height:445px;border-radius:17px;overflow:hidden}.detail-photo{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.photo-draw-canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;touch-action:none}.voice-button{--voice-btn-height: 71px;--voice-btn-radius: calc(var(--voice-btn-height) / 2);position:absolute;left:50%;top:698px;transform:translate(-50%);width:71px;height:var(--voice-btn-height);border:none;border-radius:var(--voice-btn-radius);padding:0;cursor:pointer;overflow:hidden;transition:width .18s cubic-bezier(.22,.61,.36,1);background:linear-gradient(90deg,#69affb,#3877f5);box-shadow:0 8px 18px #2f7af859,inset 0 1px 2px #ffffff73}.voice-button.listening{width:333px}.voice-button.completed{cursor:pointer}.voice-icon-image{position:absolute;left:50%;top:50%;width:31px;height:31px;transform:translate(-50%,-50%);display:block;transition:opacity .18s ease}.voice-button.listening .voice-icon-image{opacity:0}.voice-wave{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:120px;height:39px;display:flex;align-items:center;justify-content:center;gap:7px;opacity:0;transition:opacity .18s ease}.voice-button.listening .voice-wave{opacity:1}.wave-bar{width:3px;height:12px;border-radius:3px;background:#ffffff8c;transform-origin:center bottom}.voice-typing-text{margin:0;position:absolute;top:642px;left:50%;transform:translate(-50%);min-height:22px;width:230px;text-align:center;font-size:16px;line-height:22px;font-weight:600;color:#000;opacity:0;transition:opacity .18s ease}.voice-typing-text.show{opacity:1}.detail-hint{margin:0;position:absolute;top:786px;left:50%;transform:translate(-50%);width:266px;text-align:center;font-size:14px;line-height:20px;color:#00000080}.skill-page{position:relative;width:100%;height:100%;background:#0f172a;overflow:hidden;display:flex;flex-direction:column;box-sizing:border-box}.skill-showcase{position:relative;flex:1;min-height:0;width:100%;opacity:0;transform:scale(1.02)}.skill-page.is-entered .skill-showcase{animation:skillCoverIn .72s cubic-bezier(.2,.85,.2,1) forwards}@keyframes skillCoverIn{to{opacity:1;transform:scale(1)}}@keyframes skillFadeUp{to{opacity:1;transform:translateY(0)}}.skill-hero-wrap{position:relative;width:100%;height:100%;overflow:hidden}.skill-hero-photo,.skill-hero-draw{position:absolute;inset:0;width:100%;height:100%;min-width:100%;min-height:100%;display:block;object-fit:cover;object-position:center center}.skill-hero-photo,.skill-hero-draw{pointer-events:none}.skill-cover-scrim{position:absolute;left:0;right:0;pointer-events:none;z-index:1}.skill-cover-scrim--top{top:0;height:48%;background:linear-gradient(180deg,rgba(15,23,42,.72) 0%,rgba(15,23,42,.38) 42%,transparent 100%)}.skill-cover-scrim--bottom{bottom:0;height:40%;background:linear-gradient(0deg,#fff 0%,rgba(255,255,255,.97) 28%,rgba(255,255,255,.82) 52%,transparent 100%)}.skill-page-title{position:absolute;top:18px;left:0;right:0;z-index:3;margin:0;padding:0 24px;font-size:26px;line-height:34px;font-weight:700;color:#fff;letter-spacing:-.02em;text-align:center;text-shadow:0 2px 16px rgba(0,0,0,.35);opacity:0;transform:translateY(12px)}.skill-page.is-entered .skill-page-title{animation:skillFadeUp .56s cubic-bezier(.2,.8,.2,1) .12s forwards}.skill-cover-footer{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;flex-direction:column;align-items:center;gap:20px;padding:64px 32px 44px}.skill-generated-banner{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;max-width:320px;min-height:auto;margin:0;padding:8px 0 0;text-align:center;background:none;opacity:0;transform:translateY(24px) scale(.94);overflow:visible}.skill-generated-banner.is-visible{animation:skillToastPop .82s cubic-bezier(.2,.9,.2,1.15) forwards}.skill-generated-glow{position:absolute;top:0;left:50%;width:160px;height:160px;margin-left:-80px;border-radius:50%;background:radial-gradient(circle,rgba(56,119,245,.45) 0%,rgba(105,175,251,.15) 45%,transparent 70%);opacity:0;pointer-events:none;transform:scale(.5)}.skill-generated-banner.is-visible .skill-generated-glow{animation:skillGlowBurst 1.2s ease-out .1s forwards,skillGlowPulse 2.4s ease-in-out 1.2s infinite}.skill-generated-burst{position:absolute;top:26px;left:50%;width:56px;height:56px;margin-left:-28px;pointer-events:none}.skill-generated-burst span{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(56,119,245,.55);opacity:0;transform:scale(.6)}.skill-generated-banner.is-visible .skill-generated-burst span:nth-child(1){animation:skillRingBurst 1.1s cubic-bezier(.2,.8,.2,1) .2s forwards}.skill-generated-banner.is-visible .skill-generated-burst span:nth-child(2){animation:skillRingBurst 1.1s cubic-bezier(.2,.8,.2,1) .38s forwards}.skill-generated-confetti{position:absolute;top:26px;left:50%;width:200px;height:200px;margin-left:-100px;pointer-events:none;overflow:visible}.skill-generated-confetti i{position:absolute;left:50%;top:50%;width:6px;height:10px;margin:-5px 0 0 -3px;border-radius:2px;opacity:0;transform:translate(0) rotate(0) scale(.4)}.skill-generated-banner.is-visible .skill-generated-confetti i{animation:skillConfettiBurst .9s cubic-bezier(.2,.7,.2,1) forwards}.skill-generated-confetti i:nth-child(1){animation-delay:.12s;background:#ffd166;--tx: -52px;--ty: -38px}.skill-generated-confetti i:nth-child(2){animation-delay:.18s;background:#ff8fab;--tx: 48px;--ty: -42px}.skill-generated-confetti i:nth-child(3){animation-delay:.14s;background:#7ee0ff;--tx: 62px;--ty: 8px}.skill-generated-confetti i:nth-child(4){animation-delay:.22s;background:#b8f2a6;--tx: -58px;--ty: 12px}.skill-generated-confetti i:nth-child(5){animation-delay:.16s;background:#fff3b0;--tx: -28px;--ty: 52px}.skill-generated-confetti i:nth-child(6){animation-delay:.24s;background:#ffc6ff;--tx: 32px;--ty: 48px}.skill-generated-confetti i:nth-child(7){animation-delay:.2s;background:#9bf6ff;--tx: 0;--ty: -58px}.skill-generated-confetti i:nth-child(8){animation-delay:.26s;background:#ffd6a5;--tx: -72px;--ty: -12px}.skill-generated-confetti i:nth-child(9){animation-delay:.1s;background:#fff;--tx: 72px;--ty: -18px}.skill-generated-confetti i:nth-child(10){animation-delay:.28s;background:#caffbf;--tx: 18px;--ty: -52px}.skill-generated-confetti i:nth-child(11){animation-delay:.15s;background:#69affb;--tx: -38px;--ty: -52px;width:4px;height:4px;border-radius:50%}.skill-generated-confetti i:nth-child(12){animation-delay:.21s;background:#3877f5;--tx: 44px;--ty: 28px;width:4px;height:4px;border-radius:50%}.skill-generated-confetti i:nth-child(13){animation-delay:.19s;background:#ffd166;--tx: -12px;--ty: 62px;width:5px;height:5px;border-radius:50%}.skill-generated-confetti i:nth-child(14){animation-delay:.25s;background:#ff8fab;--tx: 58px;--ty: -48px}.skill-generated-confetti i:nth-child(15){animation-delay:.17s;background:#7ee0ff;--tx: -64px;--ty: 36px}.skill-generated-icon-wrap{position:relative;z-index:2;width:56px;height:56px;margin-bottom:18px}.skill-generated-icon{position:relative;width:56px;height:56px;border-radius:50%;background:linear-gradient(145deg,#69affb,#3877f5 55%,#2f67e0);color:#fff;font-size:28px;font-weight:700;display:grid;place-items:center;transform:scale(0);box-shadow:0 8px 28px #3877f573,0 0 0 4px #ffffffe6}.skill-generated-banner.is-visible .skill-generated-icon{animation:skillCheckPop .62s cubic-bezier(.2,.9,.2,1.25) .15s forwards,skillIconPulse 2s ease-in-out .9s infinite}.skill-generated-body{position:relative;z-index:1}.skill-generated-title{margin:0;font-size:28px;line-height:36px;font-weight:800;letter-spacing:.04em;opacity:0;transform:translateY(8px) scale(.92)}.skill-generated-title-main{background:linear-gradient(135deg,#2f67e0,#3877f5,#69affb);-webkit-background-clip:text;background-clip:text;color:transparent}.skill-generated-title-accent{margin-left:6px;background:linear-gradient(90deg,#3877f5,#69affb,#3877f5 80%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}.skill-generated-banner.is-visible .skill-generated-title{animation:skillTitleReveal .64s cubic-bezier(.2,.85,.2,1) .35s forwards}.skill-generated-banner.is-visible .skill-generated-title-accent{animation:skillTitleShine 2.2s ease-in-out 1s infinite}.skill-generated-sub{margin:10px 0 0;color:#2f67e0cc;font-size:14px;line-height:22px;letter-spacing:.04em;opacity:0;transform:translateY(8px)}.skill-generated-banner.is-visible .skill-generated-sub{animation:skillSubFadeUp .52s ease-out .55s forwards}@keyframes skillToastPop{0%{opacity:0;transform:translateY(24px) scale(.94)}55%{opacity:1;transform:translateY(-6px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes skillGlowBurst{0%{opacity:0;transform:scale(.5)}40%{opacity:1;transform:scale(1.15)}to{opacity:.75;transform:scale(1)}}@keyframes skillGlowPulse{0%,to{opacity:.55;transform:scale(.95)}50%{opacity:.9;transform:scale(1.08)}}@keyframes skillRingBurst{0%{opacity:.85;transform:scale(.6)}to{opacity:0;transform:scale(2.8)}}@keyframes skillCheckPop{0%{transform:scale(0) rotate(-24deg)}60%{transform:scale(1.12) rotate(8deg)}to{transform:scale(1) rotate(0)}}@keyframes skillIconPulse{0%,to{box-shadow:0 8px 28px #3877f573,0 0 0 4px #ffffffe6}50%{box-shadow:0 10px 36px #3877f58c,0 0 0 6px #fffffff2}}@keyframes skillTitleReveal{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes skillTitleShine{0%{background-position:120% 0}to{background-position:-20% 0}}@keyframes skillSubFadeUp{to{opacity:1;transform:translateY(0)}}@keyframes skillConfettiBurst{0%{opacity:0;transform:translate(0) rotate(0) scale(.4)}30%{opacity:1}to{opacity:0;transform:translate(var(--tx),var(--ty)) rotate(220deg) scale(1)}}.skill-quote-bar{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;max-width:320px;padding:0;opacity:0;transform:translateY(12px)}.skill-page.is-entered .skill-quote-bar{animation:skillFadeUp .56s cubic-bezier(.2,.8,.2,1) .62s forwards}.skill-quote-text{margin:0;color:#0f172a;font-size:20px;line-height:32px;font-weight:600;text-align:center;letter-spacing:.02em;max-width:100%}#screen-skill-feedback.enter-from-right{animation:skillPageEnterFromRight .32s cubic-bezier(.2,.8,.2,1)}@keyframes skillPageEnterFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}
