:root{--charcoal: #121212;--champagne-gold: #D4AF37;--soft-gold: #E5C76B;--muted-gold: #8E793E;--text-primary: rgba(255, 255, 255, .9);--text-secondary: rgba(255, 255, 255, .4);--text-muted: rgba(255, 255, 255, .2);--border-subtle: rgba(255, 255, 255, .05);--border-gold: rgba(212, 175, 55, .3)}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--charcoal);color:var(--text-primary);font-family:Inter,Noto Sans KR,sans-serif;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100dvh}.app{display:flex;flex-direction:column;min-height:100dvh;position:relative}.app__bg{position:fixed;inset:0;z-index:-1;pointer-events:none}.app__bg-glow{position:absolute;top:-10%;left:-10%;width:50%;height:50%;background:var(--muted-gold);border-radius:50%;filter:blur(150px);opacity:.15}.app__bg-grain{position:absolute;inset:0;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)' opacity='0.03'/%3E%3C/svg%3E");opacity:.4}.header-bar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);background:#121212cc}.header-bar__brand{display:flex;flex-direction:column}.header-bar__est{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--champagne-gold);font-weight:500}.header-bar__title{font-family:Playfair Display,serif;font-size:1.5rem;font-weight:700;font-style:italic;color:#fff;letter-spacing:-.02em}.header-bar__badge{display:flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border:1px solid var(--champagne-gold);border-radius:100px;background:#d4af370d}.header-bar__badge-icon{font-size:14px;color:var(--champagne-gold)}.header-bar__badge-text{font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--champagne-gold);font-weight:600}.hero{padding:4rem 1.5rem 3rem;text-align:center}.hero__title{font-family:Playfair Display,serif;font-size:2.8rem;font-weight:400;font-style:italic;line-height:1.1;color:#fff;margin-bottom:1.5rem}.hero__title-accent{color:var(--champagne-gold)}.hero__desc{color:var(--text-secondary);font-size:.85rem;font-weight:300;max-width:280px;margin:0 auto;line-height:1.7;letter-spacing:.03em}.form-section{padding:0 2rem 2rem}.form-section__fields{display:flex;flex-direction:column;gap:2.5rem}.field{display:flex;flex-direction:column}.field__label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--champagne-gold);font-weight:500;margin-bottom:.5rem}.field__input,.field__select{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.15);padding:1rem 0;color:var(--text-primary);font-size:1rem;font-family:Inter,Noto Sans KR,sans-serif;font-weight:300;letter-spacing:.1em;outline:none;transition:border-color .3s;appearance:none;-webkit-appearance:none}.field__input:focus,.field__select:focus{border-bottom-color:var(--champagne-gold)}.field__input::placeholder{color:var(--text-muted)}.field__select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='rgba(255,255,255,0.3)' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0 center;padding-right:1.5rem;cursor:pointer}.field__select option{background:#1a1a1a;color:#fff}.field__row{display:flex;gap:1.5rem}.field__row .field__select{flex:1}.photo-field{display:flex;flex-direction:column;align-items:center;padding:1.5rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.photo-field__area{width:120px;height:120px;border-radius:50%;border:1px dashed rgba(255,255,255,.15);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;overflow:hidden;background:#ffffff05}.photo-field__area:hover,.photo-field__area--dragging{border-color:var(--champagne-gold);background:#d4af370d}.photo-field__area--dragging{transform:scale(1.05)}.photo-field__area--has-image{border-style:solid;border-color:var(--champagne-gold)}.photo-field__preview{width:100%;height:100%;object-fit:cover}.photo-field__icon{font-size:28px;color:#fff3}.photo-field__text{font-size:.65rem;color:var(--text-secondary);margin-top:.75rem;letter-spacing:.1em;text-transform:uppercase}.photo-field__input{display:none}.essence-group{display:flex;gap:3rem;padding-top:.25rem}.essence-group__option{display:flex;align-items:center;gap:.75rem;cursor:pointer}.essence-group__radio{width:16px;height:16px;border:1px solid rgba(255,255,255,.2);border-radius:50%;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer;transition:all .3s}.essence-group__radio:checked{border-color:var(--champagne-gold);background:var(--champagne-gold);box-shadow:inset 0 0 0 3px var(--charcoal)}.essence-group__text{font-size:.9rem;font-weight:300;color:#ffffff80;transition:color .3s}.essence-group__option:hover .essence-group__text{color:#fff}.gold-btn{width:100%;padding:1.25rem;background:linear-gradient(135deg,#d4af37,#8e793e);box-shadow:0 10px 20px -10px #d4af3766;color:var(--charcoal);border:none;border-radius:2px;font-size:.7rem;font-weight:700;font-family:Inter,sans-serif;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;transition:all .2s}.gold-btn:active:not(:disabled){transform:scale(.98)}.gold-btn:disabled{opacity:.4;cursor:not-allowed}.form-section__footer{text-align:center;margin-top:1.5rem;font-size:.6rem;color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;font-style:italic}.form-section__error{color:#e74c3c;font-size:.8rem;text-align:center;padding:.75rem;background:#e74c3c14;border-radius:4px}.quote-section{padding:4rem 3rem;text-align:center;border-top:1px solid var(--border-subtle)}.quote-section__icon{font-size:1.5rem;color:var(--champagne-gold);opacity:.5;margin-bottom:1rem}.quote-section__text{font-family:Playfair Display,serif;font-style:italic;font-size:1.15rem;color:#ffffff80;line-height:1.8}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;justify-content:space-around;align-items:center;padding:1rem 2.5rem 2rem;background:#121212e6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border-subtle)}.bottom-nav__item{display:flex;flex-direction:column;align-items:center;gap:.25rem;text-decoration:none;transition:color .3s}.bottom-nav__item--active{color:var(--champagne-gold)}.bottom-nav__item--inactive{color:#ffffff40}.bottom-nav__icon{font-size:24px}.bottom-nav__label{font-size:.55rem;letter-spacing:-.02em;text-transform:uppercase;font-weight:500}.nav-spacer{height:5rem}.result{flex:1;padding-bottom:2rem}.result__hero{padding:3rem 1.5rem 2rem;text-align:center}.result__genre{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--champagne-gold);font-weight:500;margin-bottom:.75rem}.result__title{font-family:Playfair Display,serif;font-size:2.5rem;font-weight:400;font-style:italic;line-height:1.15;color:#fff;margin-bottom:1rem}.result__copy{font-family:Playfair Display,serif;font-style:italic;font-size:1rem;color:#ffffff80;line-height:1.7;max-width:320px;margin:0 auto}.result__poster{padding:0 1.5rem;margin-bottom:1.5rem}.result__poster-frame{position:relative;width:100%;aspect-ratio:2/3;overflow:hidden;border-radius:2px}.result__poster-img{width:100%;height:100%;object-fit:cover}.result__poster-overlay{position:absolute;inset:0;background:linear-gradient(to top,var(--charcoal) 0%,transparent 40%)}.result__poster-caption{position:absolute;bottom:1.25rem;left:1.25rem}.result__poster-vol{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--champagne-gold);margin-bottom:.25rem}.result__poster-name{font-family:Playfair Display,serif;font-size:1.25rem;font-style:italic;font-weight:300;color:#fff}.result__poster-loading{width:100%;aspect-ratio:2/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:#ffffff05;border:1px solid var(--border-subtle);border-radius:2px}.result__poster-loading-text{font-size:.7rem;color:var(--text-secondary);letter-spacing:.15em;text-transform:uppercase}.result__palette{display:flex;margin:0 1.5rem 1.5rem;height:4px;border-radius:2px;overflow:hidden}.result__palette-color{flex:1}.result__cards{padding:0 1.5rem;display:flex;flex-direction:column;gap:1px}.report-card{padding:1.75rem 0;border-bottom:1px solid rgba(212,175,55,.15)}.report-card:first-child{border-top:1px solid rgba(212,175,55,.15)}.report-card__label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--champagne-gold);font-weight:500;margin-bottom:.75rem}.report-card__text{font-size:.9rem;color:#ffffffb3;line-height:1.8;font-weight:300}.report-card__keywords{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.report-card__keyword{padding:.4rem 1rem;border:1px solid rgba(212,175,55,.25);border-radius:100px;font-size:.75rem;color:var(--champagne-gold);font-weight:400;letter-spacing:.05em;background:#d4af370d}.result__actions{padding:2rem 2rem 0}.spinner{width:28px;height:28px;border:2px solid rgba(255,255,255,.1);border-top-color:var(--champagne-gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.disclaimer{text-align:center;font-size:.65rem;color:#ffffff40;line-height:1.6;padding:1.5rem 2rem;letter-spacing:.02em}@media(max-width:380px){.hero__title{font-size:2.2rem}.result__title{font-size:2rem}}@media(min-width:768px){.hero__title{font-size:3.5rem}.form-section{max-width:500px;margin:0 auto}.result__poster{max-width:400px;margin-left:auto;margin-right:auto}.result__cards{max-width:500px;margin:0 auto}}
