*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}#root{width:100%;min-height:100vh}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,p{margin:0}button,input{font-family:inherit}.main-wrapper{background-color:#faf8f4;background-image:radial-gradient(circle at 20% 20%,#f5ede0 0%,#0000 50%),radial-gradient(circle at 80% 80%,#e8f0e8 0%,#0000 50%);flex-direction:column;align-items:center;min-height:100vh;font-family:Caveat,Nanum Pen Script,cursive;display:flex;position:relative;overflow:hidden}.main-header{justify-content:center;width:100%;padding:24px 32px;display:flex}.hero-section{flex-direction:column;flex:1;align-items:center;gap:8px;width:100%;max-width:480px;padding:0 24px 32px;display:flex}.sketch-illustration{filter:drop-shadow(2px 4px 12px #00000014);animation:4s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.hero-text{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.hero-sub{color:#8a7968;letter-spacing:.08em;margin:0;font-family:Caveat,cursive;font-size:1.1rem}.hero-title{color:#2d2d2d;margin:0;font-family:Caveat,cursive;font-size:3rem;font-weight:700;line-height:1.15;position:relative}.hero-title:after{content:"";background:#c9a87c;border-radius:2px;width:60%;height:3px;margin:4px auto 0;display:block}.hero-desc{color:#6b6055;margin:0;font-family:Caveat,cursive;font-size:1.05rem;line-height:1.7}.cta-button{color:#faf8f4;letter-spacing:.05em;cursor:pointer;background:#2d2d2d;border:none;border-radius:0;align-items:center;gap:10px;margin-top:8px;padding:14px 32px;font-family:Caveat,cursive;font-size:1.15rem;font-weight:600;transition:transform .15s,box-shadow .15s;display:flex;position:relative;box-shadow:3px 3px #c9a87c}.cta-button:hover{transform:translate(-2px,-2px);box-shadow:5px 5px #c9a87c}.cta-button:active{transform:translate(1px,1px);box-shadow:2px 2px #c9a87c}.main-footer{justify-content:center;width:100%;padding:16px 24px 32px;display:flex}.tag-list{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.tag{color:#8a7968;letter-spacing:.03em;background:#c9a87c1f;border:1.5px dashed #c9a87c;border-radius:20px;padding:4px 12px;font-family:Caveat,cursive;font-size:.95rem}.deco1{font-size:1.8rem;top:12%;left:8%;transform:rotate(-20deg)}.deco2{font-size:1.2rem;top:55%;right:6%;transform:rotate(15deg)}.deco3{bottom:18%;left:5%;transform:rotate(10deg)}.profile-wrapper{background-color:#faf8f4;background-image:radial-gradient(circle at 80% 10%,#f5ede0 0%,#0000 45%),radial-gradient(circle at 10% 90%,#e8efe8 0%,#0000 45%);flex-direction:column;align-items:center;min-height:100vh;padding-bottom:48px;font-family:Caveat,Nanum Pen Script,cursive;display:flex;position:relative;overflow-x:hidden}.profile-header{justify-content:space-between;align-items:center;width:100%;max-width:480px;padding:20px 24px;display:flex}.profile-title-area{text-align:center;margin-bottom:28px;padding:0 24px}.profile-subtitle{color:#8a7968;letter-spacing:.05em;margin:0 0 4px;font-family:Caveat,cursive;font-size:1rem}.profile-title{color:#2d2d2d;margin:0;font-family:Caveat,cursive;font-size:2.4rem;font-weight:700;display:inline-block;position:relative}.profile-title:after{content:"";background:#c9a87c;border-radius:2px;width:50%;height:3px;margin:4px auto 0;display:block}.profile-form{flex-direction:column;gap:28px;width:100%;max-width:420px;padding:0 24px;display:flex}.form-group{flex-direction:column;gap:10px;display:flex}.form-label{color:#2d2d2d;align-items:center;gap:8px;font-family:Caveat,cursive;font-size:1.25rem;font-weight:600;display:flex}.label-num{color:#c9a87c;letter-spacing:.05em;font-size:.85rem;font-weight:700}.label-optional{color:#a09080;margin-left:2px;font-size:.9rem;font-weight:400}.gender-options{gap:10px;display:flex}.gender-btn{cursor:pointer;background:#fff;border:2px solid #e0d8cc;border-radius:4px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:14px 8px;transition:all .15s;display:flex;box-shadow:2px 2px #0000}.gender-btn:hover{border-color:#c9a87c;transform:translateY(-2px);box-shadow:2px 4px #c9a87c4d}.gender-btn.selected{background:#2d2d2d;border-color:#2d2d2d;box-shadow:3px 3px #c9a87c}.gender-icon{color:#8a7968;font-size:1.5rem;transition:color .15s}.gender-btn.selected .gender-icon{color:#faf8f4}.gender-label{color:#5a5040;font-family:Caveat,cursive;font-size:1rem;font-weight:600;transition:color .15s}.gender-btn.selected .gender-label{color:#faf8f4}.input-wrapper{background:#fff;border:2px solid #e0d8cc;border-radius:4px;align-items:center;transition:border-color .15s;display:flex;overflow:hidden}.input-wrapper:focus-within{border-color:#2d2d2d}.form-input{color:#2d2d2d;background:0 0;border:none;outline:none;flex:1;padding:13px 16px;font-family:Caveat,cursive;font-size:1.2rem}.form-input::placeholder{color:#c0b8a8}.form-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.form-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.input-unit{color:#8a7968;border-left:1.5px dashed #e0d8cc;padding:0 16px;font-family:Caveat,cursive;font-size:1.1rem}.photo-upload-area{cursor:pointer;background:#fff;border:2px dashed #c0b8a8;border-radius:8px;justify-content:center;align-items:center;width:100%;height:200px;transition:border-color .15s,background .15s;display:flex;position:relative;overflow:hidden}.photo-upload-area:hover{background:#fdf9f4;border-color:#c9a87c}.photo-upload-area.has-photo{border-style:solid;border-color:#2d2d2d}.photo-placeholder{flex-direction:column;align-items:center;gap:8px;display:flex}.photo-hint{color:#8a7968;margin:0;font-family:Caveat,cursive;font-size:1.1rem}.photo-sub{color:#b0a090;margin:0;font-family:Caveat,cursive;font-size:.9rem}.photo-preview{object-fit:cover;width:100%;height:100%}.photo-overlay{opacity:0;color:#fff;background:#2d2d2d80;justify-content:center;align-items:center;font-family:Caveat,cursive;font-size:1.1rem;transition:opacity .2s;display:flex;position:absolute;inset:0}.photo-upload-area.has-photo:hover .photo-overlay{opacity:1}.submit-button{color:#faf8f4;letter-spacing:.05em;cursor:pointer;background:#2d2d2d;border:none;border-radius:0;justify-content:center;align-items:center;gap:10px;margin-top:8px;padding:16px;font-family:Caveat,cursive;font-size:1.2rem;font-weight:600;transition:transform .15s,box-shadow .15s;display:flex;box-shadow:4px 4px #c9a87c}.submit-button:hover:not(.disabled){transform:translate(-2px,-2px);box-shadow:6px 6px #c9a87c}.submit-button:active:not(.disabled){transform:translate(1px,1px);box-shadow:2px 2px #c9a87c}.submit-button.disabled{cursor:not-allowed;background:#c0b8a8;box-shadow:3px 3px #e0d8cc}.success-card{text-align:center;background:#fff;border:2px solid #2d2d2d;flex-direction:column;align-items:center;gap:14px;width:90%;max-width:360px;margin:auto;padding:40px 32px;display:flex;box-shadow:6px 6px #c9a87c}.success-icon{animation:.4s pop}@keyframes pop{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.success-title{color:#2d2d2d;margin:0;font-family:Caveat,cursive;font-size:2rem;font-weight:700}.success-desc{color:#6b6055;margin:0;font-family:Caveat,cursive;font-size:1.1rem;line-height:1.7}.success-summary{border-top:1.5px dashed #e0d8cc;border-bottom:1.5px dashed #e0d8cc;flex-direction:column;gap:10px;width:100%;padding:16px 0;display:flex}.summary-item{justify-content:space-between;align-items:center;display:flex}.summary-label{color:#8a7968;font-family:Caveat,cursive;font-size:1rem}.summary-value{color:#2d2d2d;font-family:Caveat,cursive;font-size:1.1rem;font-weight:600}.back-button{color:#2d2d2d;cursor:pointer;background:0 0;border:2px solid #2d2d2d;padding:12px 28px;font-family:Caveat,cursive;font-size:1rem;font-weight:600;transition:transform .15s,box-shadow .15s;box-shadow:3px 3px #c9a87c}.back-button:hover{transform:translate(-2px,-2px);box-shadow:5px 5px #c9a87c}.bg-deco{color:#c9a87c;opacity:.18;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:1.4rem;position:absolute}.deco2{bottom:12%;left:5%;transform:rotate(-10deg)}.error-msg{color:#c0504d;background:#fff5f5;border:1.5px solid #e8b4b2;align-items:center;gap:8px;padding:12px 14px;font-family:Caveat,cursive;font-size:1rem;display:flex}.loading-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#faf8f4e0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-card{text-align:center;background:#fff;border:2px solid #2d2d2d;flex-direction:column;align-items:center;gap:14px;padding:40px 48px;display:flex;box-shadow:6px 6px #c9a87c}.loading-figure{margin-bottom:4px}.loading-text{color:#2d2d2d;margin:0;font-family:Caveat,cursive;font-size:1.4rem;font-weight:700;line-height:1.5}.loading-sub{color:#8a7968;margin:0;font-family:Caveat,cursive;font-size:1rem}.report-wrapper{background-color:#faf8f4;background-image:radial-gradient(circle at 90% 5%,#f5ede0 0%,#0000 40%),radial-gradient(circle at 5% 95%,#e8f0e8 0%,#0000 40%);flex-direction:column;align-items:center;min-height:100vh;padding-bottom:60px;font-family:Caveat,cursive;display:flex;position:relative;overflow-x:hidden}.report-header{justify-content:space-between;align-items:center;width:100%;max-width:560px;padding:20px 24px;display:flex}.back-icon{cursor:pointer;background:0 0;border:none;align-items:center;padding:4px;transition:transform .15s;display:flex}.back-icon:hover{transform:translate(-3px)}.logo-text{color:#2d2d2d;letter-spacing:.1em;font-family:Caveat,cursive;font-size:1.5rem;font-weight:700}.report-title-area{text-align:center;margin-bottom:24px;padding:0 24px}.report-subtitle{color:#8a7968;margin:0 0 4px;font-family:Caveat,cursive;font-size:1rem}.report-title{color:#2d2d2d;margin:0 0 12px;font-family:Caveat,cursive;font-size:2.4rem;font-weight:700;display:inline-block;position:relative}.report-title:after{content:"";background:#c9a87c;border-radius:2px;width:50%;height:3px;margin:4px auto 0;display:block}.profile-badges{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.badge{color:#6b6055;background:#c9a87c26;border:1.5px dashed #c9a87c;border-radius:20px;padding:3px 12px;font-family:Caveat,cursive;font-size:.95rem}.report-content{flex-direction:column;gap:14px;width:100%;max-width:560px;padding:0 16px;display:flex}.report-card{background:#fff;border:2px solid #e8e0d4;border-radius:6px;padding:20px;position:relative}.card-label{color:#c9a87c;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-family:Caveat,cursive;font-size:.85rem;font-weight:700}.card-highlight{color:#2d2d2d;margin-bottom:8px;font-family:Caveat,cursive;font-size:1.6rem;font-weight:700}.card-desc{color:#6b6055;margin:0;font-family:Caveat,cursive;font-size:1rem;line-height:1.65}.summary-card{border-color:#2d2d2d;box-shadow:4px 4px #c9a87c}.summary-text{color:#3d3530;margin:0;font-family:Caveat,cursive;font-size:1.1rem;line-height:1.7}.two-col{grid-template-columns:1fr 1fr;gap:14px;display:grid}.keyword-list{flex-wrap:wrap;gap:8px;display:flex}.keyword-tag{color:#2d2d2d;background:#faf8f4;border:2px solid #2d2d2d;border-radius:0;padding:4px 12px;font-family:Caveat,cursive;font-size:1rem}.color-section{flex-direction:column;gap:14px;display:flex}.color-group{flex-direction:column;gap:8px;display:flex}.color-group-label{color:#8a7968;font-family:Caveat,cursive;font-size:.9rem;font-weight:600}.color-group.avoid .color-group-label{color:#b07068}.color-swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch-item{flex-direction:column;align-items:center;gap:4px;display:flex}.swatch{border:2px solid #e0d8cc;border-radius:50%;width:36px;height:36px;box-shadow:2px 2px #00000014}.avoid-swatch{opacity:.7;border:2px dashed #c0a8a0;position:relative}.swatch-name{color:#8a7968;text-align:center;word-break:keep-all;max-width:52px;font-family:Caveat,cursive;font-size:.78rem}.items-section{grid-template-columns:1fr 1fr;gap:16px;display:grid}.items-title{color:#2d2d2d;border-bottom:1.5px dashed #e0d8cc;margin-bottom:10px;padding-bottom:6px;font-family:Caveat,cursive;font-size:1rem;font-weight:700}.item-row{flex-direction:column;gap:2px;margin-bottom:10px;display:flex}.item-name{color:#2d2d2d;font-family:Caveat,cursive;font-size:1.05rem;font-weight:600}.item-reason{color:#8a7968;font-family:Caveat,cursive;font-size:.88rem;line-height:1.4}.outfit-list{flex-direction:column;gap:12px;display:flex}.outfit-row{background:#faf8f4;border-left:3px solid #c9a87c;padding:12px}.outfit-occasion{color:#c9a87c;letter-spacing:.05em;margin-bottom:4px;font-family:Caveat,cursive;font-size:.88rem;font-weight:700;display:inline-block}.outfit-desc{color:#3d3530;margin:0;font-family:Caveat,cursive;font-size:1rem;line-height:1.6}.tips-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.tip-item{color:#3d3530;align-items:flex-start;gap:10px;font-family:Caveat,cursive;font-size:1rem;line-height:1.5;display:flex}.tip-num{color:#c9a87c;min-width:22px;margin-top:1px;font-family:Caveat,cursive;font-size:.85rem;font-weight:700}.report-actions{gap:12px;width:100%;max-width:560px;padding:24px 16px 0;display:flex}.action-btn{cursor:pointer;border-radius:0;flex:1;padding:14px;font-family:Caveat,cursive;font-size:1.1rem;font-weight:600;transition:transform .15s,box-shadow .15s}.action-btn.primary{color:#faf8f4;background:#2d2d2d;border:2px solid #2d2d2d;box-shadow:3px 3px #c9a87c}.action-btn.secondary{color:#2d2d2d;background:0 0;border:2px solid #2d2d2d;box-shadow:3px 3px #e0d8cc}.action-btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px #c9a87c}.report-error{text-align:center;color:#6b6055;margin:auto;font-family:Caveat,cursive}.report-error button{color:#faf8f4;cursor:pointer;background:#2d2d2d;border:none;margin-top:16px;padding:10px 24px;font-family:Caveat,cursive;font-size:1rem}.bg-deco{color:#c9a87c;opacity:.15;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}.deco1{font-size:1.6rem;top:10%;right:5%;transform:rotate(15deg)}.deco2{font-size:1.2rem;bottom:10%;left:4%;transform:rotate(-10deg)}@media (width<=480px){.two-col,.items-section{grid-template-columns:1fr}}
