@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Noto+Sans+KR:wght@300;400;500;600&display=swap";:root{--color-bg: #faf5ef;--color-bg-pattern: radial-gradient(circle at 15% 45%, rgba(212, 132, 154, .07) 0%, transparent 55%), radial-gradient(circle at 85% 15%, rgba(186, 120, 170, .05) 0%, transparent 50%), radial-gradient(circle at 50% 85%, rgba(199, 162, 132, .04) 0%, transparent 50%);--color-surface: #ffffff;--color-surface-glass: rgba(255, 255, 255, .72);--color-text: #2e2428;--color-text-secondary: #7d6e74;--color-accent: #c47a8e;--color-accent-light: #f5e0e5;--color-accent-gradient: linear-gradient(135deg, #d4969f, #c47a8e, #b0688c);--color-accent-warm: #c9a87c;--color-border: #e8ddd5;--color-border-hover: #c47a8e;--radius-lg: 20px;--radius-md: 14px;--radius-sm: 10px;--color-accent-shadow: rgba(196, 122, 142, .2);--color-accent-shadow-hover: rgba(196, 122, 142, .32);--color-surface-hover: rgba(255, 255, 255, .5);--color-text-hint: #b8a5ab;--shadow-soft: 0 2px 20px rgba(160, 120, 140, .06);--shadow-card: 0 8px 32px rgba(160, 120, 140, .08);--shadow-card-hover: 0 16px 48px rgba(160, 120, 140, .14);--color-focus-ring: rgba(196, 122, 142, .45);--transition-base: .3s cubic-bezier(.4, 0, .2, 1);--transition-spring: .4s cubic-bezier(.34, 1.56, .64, 1);--font-display: "Cormorant Garamond", "Georgia", serif;--font-body: "Noto Sans KR", system-ui, -apple-system, sans-serif;font-family:var(--font-body);line-height:1.6;font-weight:400;color-scheme:light;color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-image:var(--color-bg-pattern);background-attachment:fixed;transition:background-color var(--transition-base),color var(--transition-base)}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:4px}button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}[data-theme=male]{--color-bg: #eef1f5;--color-bg-pattern: radial-gradient(circle at 15% 45%, rgba(74, 110, 160, .06) 0%, transparent 55%), radial-gradient(circle at 85% 15%, rgba(58, 95, 140, .05) 0%, transparent 50%), radial-gradient(circle at 50% 85%, rgba(90, 120, 160, .04) 0%, transparent 50%);--color-surface: #ffffff;--color-surface-glass: rgba(255, 255, 255, .72);--color-text: #1a2535;--color-text-secondary: #5e7088;--color-accent: #4570a8;--color-accent-light: #d3e1f0;--color-accent-gradient: linear-gradient(135deg, #5a8cc5, #4570a8, #365d92);--color-accent-warm: #7a9ab8;--color-border: #ced6e0;--color-border-hover: #4570a8;--color-accent-shadow: rgba(69, 112, 168, .2);--color-accent-shadow-hover: rgba(69, 112, 168, .32);--color-surface-hover: rgba(211, 225, 240, .4);--color-text-hint: #8a9bae;--radius-lg: 16px;--radius-md: 12px;--radius-sm: 8px;--shadow-soft: 0 2px 20px rgba(80, 110, 150, .06);--shadow-card: 0 8px 32px rgba(80, 110, 150, .08);--shadow-card-hover: 0 16px 48px rgba(80, 110, 150, .14);--color-focus-ring: rgba(69, 112, 168, .45)}button{font-family:inherit}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.ad-banner{margin:2rem 0;text-align:center;min-height:90px;overflow:hidden}.ad-banner__label{display:block;font-size:.7rem;color:var(--color-text-secondary, #999);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.ad-banner--header{margin:0 0 1.5rem}.ad-banner--report{margin:2rem 0;padding-top:1.5rem;border-top:1px solid var(--color-border)}.ad-banner--footer{margin:2.5rem 0 0}.cookie-consent{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:var(--color-surface, #fff);border-top:1px solid var(--color-border, #e0d5c8);box-shadow:0 -2px 12px #0000001a;padding:1rem;animation:cookie-slide-up .3s ease-out}@keyframes cookie-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.cookie-consent__inner{max-width:960px;margin:0 auto;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.cookie-consent__text{flex:1;min-width:240px;font-size:.85rem;line-height:1.5;color:var(--color-text-secondary, #6b5e50);margin:0}.cookie-consent__link{color:var(--color-primary, #c08b6e);text-decoration:underline}.cookie-consent__actions{display:flex;gap:.5rem;flex-shrink:0}.cookie-consent__btn{padding:.5rem 1.25rem;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;border:1px solid var(--color-border, #e0d5c8);transition:background .2s,color .2s}.cookie-consent__btn--accept{background:var(--color-primary, #c08b6e);color:#fff;border-color:var(--color-primary, #c08b6e)}.cookie-consent__btn--accept:hover{opacity:.9}.cookie-consent__btn--decline{background:transparent;color:var(--color-text-secondary, #6b5e50)}.cookie-consent__btn--decline:hover{background:var(--color-bg-hover, #f5efe8)}@media(max-width:600px){.cookie-consent__inner{flex-direction:column;align-items:stretch;text-align:center}.cookie-consent__actions{justify-content:center}}.skip-link{position:absolute;top:-100%;left:1rem;z-index:200;padding:.75rem 1.5rem;background:var(--color-accent);color:#fff;border-radius:var(--radius-sm);text-decoration:none;font-size:.9rem;font-weight:500;transition:top var(--transition-base)}.skip-link:focus{top:.75rem}.nav{position:sticky;top:0;z-index:100;background:var(--color-surface-glass);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border-bottom:1px solid var(--color-border)}.nav:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--color-accent-gradient);opacity:.7}.nav__inner{max-width:1080px;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:64px}.nav__logo{font-family:var(--font-display);font-size:1.4rem;font-weight:600;color:var(--color-text);text-decoration:none;flex-shrink:0;letter-spacing:.01em;transition:opacity var(--transition-base)}.nav__logo:hover{opacity:.8}.nav__logo-accent{background:var(--color-accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.nav__menu{list-style:none;margin:0;padding:0;display:flex;gap:.15rem;align-items:center}.nav__link{display:block;padding:.5rem .8rem;font-size:.85rem;font-weight:400;color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-sm);transition:color var(--transition-base),background var(--transition-base);white-space:nowrap;position:relative}.nav__link:hover{color:var(--color-text);background:var(--color-surface-hover)}.nav__link.active{color:var(--color-accent);font-weight:500}.nav__link.active:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:16px;height:2px;background:var(--color-accent-gradient);border-radius:1px}.nav__toggle{display:none;flex-direction:column;gap:5px;padding:8px;background:none;border:none;cursor:pointer}.nav__toggle span{display:block;width:20px;height:1.5px;background:var(--color-text);border-radius:2px;transition:transform var(--transition-base),opacity var(--transition-base);transform-origin:center}.nav__toggle--open span:nth-child(1){transform:rotate(45deg) translate(4.5px,4.5px)}.nav__toggle--open span:nth-child(2){opacity:0}.nav__toggle--open span:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px)}.layout__main{min-height:calc(100vh - 364px);animation:fadeIn .4s ease-out}.footer{background:var(--color-surface);border-top:1px solid var(--color-border);margin-top:2rem;position:relative}.footer:before{content:"";position:absolute;top:-1px;left:50%;transform:translate(-50%);width:60px;height:2px;background:var(--color-accent-gradient);border-radius:1px}.footer__inner{max-width:1080px;margin:0 auto;padding:3.5rem 1.5rem 2.5rem;display:flex;gap:3rem;justify-content:space-between}.footer__brand{max-width:280px}.footer__logo{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--color-text);text-decoration:none;letter-spacing:.01em}.footer__logo-accent{background:var(--color-accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.footer__desc{font-size:.83rem;color:var(--color-text-secondary);margin:.85rem 0 0;line-height:1.7;font-weight:300}.footer__links{display:flex;gap:3.5rem}.footer__col{display:flex;flex-direction:column;gap:.55rem}.footer__col-title{font-family:var(--font-display);font-size:.9rem;font-weight:600;color:var(--color-text);margin:0 0 .3rem;letter-spacing:.04em}.footer__link{font-size:.82rem;color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-base);font-weight:300}.footer__link:hover{color:var(--color-accent)}.footer__bottom{max-width:1080px;margin:0 auto;padding:1.25rem 1.5rem;border-top:1px solid var(--color-border);text-align:center}.footer__bottom p{margin:0;font-size:.75rem;color:var(--color-text-hint);letter-spacing:.03em}@media(max-width:768px){.nav__toggle{display:flex}.nav__menu{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:.5rem .75rem;box-shadow:var(--shadow-card);gap:0}.nav__menu--open{display:flex;animation:slideDown .25s ease-out}.nav__link{padding:.85rem 1rem;font-size:.92rem;border-radius:var(--radius-sm)}.nav__link.active:after{display:none}.footer__inner{flex-direction:column;gap:2rem;padding:2.5rem 1.5rem 2rem}.footer__links{flex-wrap:wrap;gap:2rem}.footer__brand{max-width:100%}}.photo-upload{flex:1;min-width:280px;max-width:400px}.photo-upload__label{font-size:1rem;font-weight:500;margin-bottom:.2rem;color:var(--color-text)}.photo-upload__description{font-size:.82rem;color:var(--color-text-secondary);margin-bottom:.75rem;font-weight:300}.photo-upload__dropzone{position:relative;border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:border-color var(--transition-base),background-color var(--transition-base),box-shadow var(--transition-base);background-color:var(--color-surface);box-shadow:var(--shadow-soft);min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.photo-upload__dropzone:hover,.photo-upload__dropzone--drag-over{border-color:var(--color-border-hover);background-color:var(--color-accent-light);box-shadow:var(--shadow-card-hover)}.photo-upload__dropzone--drag-over{transform:scale(1.01)}.photo-upload__icon{width:56px;height:56px;border-radius:50%;background:var(--color-accent-light);display:flex;align-items:center;justify-content:center;margin-bottom:.3rem;transition:transform var(--transition-spring)}.photo-upload__dropzone:hover .photo-upload__icon{transform:translateY(-2px)}.photo-upload__icon svg{width:24px;height:24px;stroke:var(--color-accent)}.photo-upload__text{font-size:.88rem;color:var(--color-text-secondary)}.photo-upload__text span{color:var(--color-accent);font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.photo-upload__hint{font-size:.72rem;color:var(--color-text-hint);font-weight:300}.photo-upload__input{display:none}.photo-upload__preview-wrapper{position:relative;width:100%;min-height:240px;display:flex;align-items:center;justify-content:center}.photo-upload__preview{max-width:100%;max-height:320px;width:auto;height:auto;border-radius:var(--radius-md);object-fit:contain}.photo-upload__remove-btn{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;border:none;background:#ffffffeb;color:var(--color-text-secondary);font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background-color var(--transition-base),color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base);box-shadow:0 2px 8px #0000001a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);touch-action:manipulation}.photo-upload__remove-btn:hover{background:#fff;color:var(--color-accent);box-shadow:0 4px 16px var(--color-accent-shadow);transform:scale(1.1)}.gender-selector{display:inline-flex;background:var(--color-accent-light);border-radius:50px;padding:4px;gap:2px;margin-top:1.2rem;box-shadow:inset 0 1px 3px #0000000a}.gender-selector__option{padding:.5rem 1.6rem;border:none;border-radius:50px;background:transparent;color:var(--color-text-secondary);font-size:.88rem;font-weight:400;cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base),box-shadow var(--transition-base);display:flex;align-items:center;gap:.35rem;line-height:1;touch-action:manipulation}.gender-selector__option--active{background:var(--color-surface);color:var(--color-accent);font-weight:500;box-shadow:0 2px 10px var(--color-accent-shadow, rgba(212, 132, 154, .2))}.gender-selector__option:not(.gender-selector__option--active):hover{color:var(--color-text);background:var(--color-surface-hover, rgba(255, 255, 255, .5))}.gender-selector__icon{font-size:1rem}.app{max-width:860px;margin:0 auto;padding:3.5rem 1.5rem 4rem}.app__header{text-align:center;margin-bottom:3rem;animation:fadeUp .6s ease-out both}.app__title{font-family:var(--font-display);font-size:2.6rem;font-weight:600;margin:0 0 .6rem;color:var(--color-text);letter-spacing:-.01em;text-wrap:balance}.app__title-accent{background:var(--color-accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:700}.app__subtitle{font-size:.95rem;color:var(--color-text-secondary);margin:0;font-weight:300;line-height:1.7;text-wrap:pretty}.app__divider{width:48px;height:2px;background:var(--color-accent-gradient);border:none;margin:1.4rem auto 0;border-radius:1px}.app__uploads{display:flex;gap:2rem;justify-content:center;margin-bottom:2.5rem;animation:fadeUp .6s ease-out .15s both}.app__action{text-align:center;animation:fadeUp .6s ease-out .25s both}.app__start-btn{padding:1rem 3.5rem;font-size:1rem;font-weight:500;border:none;border-radius:50px;background:var(--color-accent-gradient);color:#fff;cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base);letter-spacing:.04em;box-shadow:0 4px 24px var(--color-accent-shadow);touch-action:manipulation;position:relative;overflow:hidden}.app__start-btn:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.2) 45%,rgba(255,255,255,.3) 50%,transparent 55%);background-size:200% 100%;animation:shimmer 3s ease-in-out infinite}.app__start-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 32px var(--color-accent-shadow-hover)}.app__start-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 4px 16px var(--color-accent-shadow)}.app__start-btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.app__start-btn:disabled:after{display:none}.app__action-hint{font-size:.8rem;color:var(--color-text-secondary);margin-top:.85rem;font-weight:300}.app__content{margin-top:3.5rem;border-top:1px solid var(--color-border);padding-top:3rem}.app__intro{text-align:center;margin-bottom:3rem}.app__intro-title{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--color-text);margin:0 0 1rem;text-wrap:balance}.app__intro-text{font-size:.95rem;color:var(--color-text-secondary);line-height:1.8;max-width:640px;margin:0 auto}.app__how-it-works{margin-bottom:3rem;text-align:center}.app__steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:1.5rem}.app__step{text-align:center;padding:1.5rem 1rem}.app__step-number{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--color-accent-gradient);color:#fff;font-weight:700;font-size:1.1rem;margin-bottom:.75rem}.app__step-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0 0 .5rem}.app__step-desc{font-size:.85rem;color:var(--color-text-secondary);line-height:1.6;margin:0}.app__features{margin-bottom:3rem;text-align:center}.app__feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:1.5rem}.app__feature{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem;text-align:left}.app__feature-title{font-size:1rem;font-weight:600;color:var(--color-text);margin:0 0 .5rem}.app__feature-desc{font-size:.88rem;color:var(--color-text-secondary);line-height:1.7;margin:0}.app__guides-preview{margin-bottom:3rem;text-align:center}.app__guide-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.5rem}.app__guide-link{display:inline-block;padding:.5rem 1.25rem;border:1px solid var(--color-border);border-radius:50px;font-size:.88rem;color:var(--color-text);text-decoration:none;transition:background .2s,border-color .2s}.app__guide-link:hover{background:var(--color-surface);border-color:var(--color-primary, #c08b6e)}.app__faq{margin-bottom:2rem;text-align:center}.app__faq-list{margin-top:1.5rem;text-align:left}.app__faq-item{border:1px solid var(--color-border);border-radius:8px;margin-bottom:.75rem;overflow:hidden}.app__faq-question{padding:1rem 1.25rem;font-weight:500;font-size:.95rem;color:var(--color-text);cursor:pointer;list-style:none}.app__faq-question::-webkit-details-marker{display:none}.app__faq-question:before{content:"+";display:inline-block;width:1.2em;font-weight:700;color:var(--color-primary, #c08b6e)}.app__faq-item[open] .app__faq-question:before{content:"−"}.app__faq-answer{padding:0 1.25rem 1rem 2.45rem;font-size:.88rem;color:var(--color-text-secondary);line-height:1.7;margin:0}@media(max-width:640px){.app{padding:2rem 1rem 3rem}.app__uploads{flex-direction:column;align-items:center}.app__title{font-size:2rem}.app__start-btn{width:100%;max-width:320px}.app__steps{grid-template-columns:repeat(2,1fr)}.app__feature-grid{grid-template-columns:1fr}}
