:root{--bg:#faf9f6;--bg-elev:#fff;--surface:#efeeeb;--surface-strong:#e9e8e5;--text:#57423e;--text-h:#1a1c1a;--text-soft:#8a716d;--border:#dec0bb;--border-strong:#b79fa1;--accent:#ff7f6a;--accent-h:#a43b2c;--accent-on:#73180c;--accent-soft:#ffdad4;--accent-bg:#ff7f6a1a;--accent-border:#ff7f6a66;--shadow-sm:0 1px 2px #7424170a;--shadow:0 10px 32px -14px #7424172e, 0 2px 6px -2px #7424170f;--shadow-lg:0 28px 56px -22px #7424173d, 0 6px 14px -6px #74241714;--serif:"Noto Serif", "Noto Serif KR", Georgia, serif;--serif-ko:"Noto Serif KR", "Noto Serif", Georgia, serif;--sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Pretendard", "Segoe UI", sans-serif;font:16px/1.6 var(--sans);letter-spacing:.01em;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:radial-gradient(ellipse 80% 55% at 50% -10%, #ff7f6a1f, transparent 60%), var(--bg);min-height:100svh;margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{font-family:var(--serif-ko);color:var(--text-h);letter-spacing:-.01em;margin:0;font-weight:500}h1{letter-spacing:-.02em;font-size:clamp(2.25rem,5vw,3rem);font-weight:300;line-height:1.15}h2{font-size:1.5rem;line-height:1.25}p{margin:0}a{color:inherit;text-decoration:none}button{font-family:inherit}.site-header{z-index:10;-webkit-backdrop-filter:saturate(160%)blur(20px);background:#ffffffb3;border-bottom:1px solid #ffffff80;position:sticky;top:0;box-shadow:0 10px 40px #ff7f6a0a}.site-header__inner{justify-content:space-between;align-items:center;gap:24px;max-width:1280px;margin:0 auto;padding:18px 40px;display:flex}@media (width<=720px){.site-header__inner{padding:14px 20px}}.brand{color:var(--accent);align-items:baseline;gap:10px;display:inline-flex}.brand__mark{filter:drop-shadow(0 4px 10px #ff7f6a40);flex-shrink:0;align-self:center;width:32px;height:32px;display:block}.brand__name{font-family:var(--serif);letter-spacing:-.01em;color:var(--accent);font-size:24px;font-weight:700}.brand__tag{letter-spacing:.24em;text-transform:uppercase;color:var(--text-soft);border-left:1px solid var(--border-strong);padding-left:12px;font-size:11px}.site-nav{align-items:center;gap:36px;font-size:14px;display:flex}.site-nav a{color:var(--text);font-weight:500;transition:color .3s;position:relative}.site-nav a:not(.site-nav__cta):hover{color:var(--accent)}.site-nav__cta{background:var(--accent);color:#fff;letter-spacing:.1em;text-transform:uppercase;border-radius:999px;padding:11px 24px;font-size:12px;font-weight:600;transition:opacity .2s,transform .1s}.site-nav__cta:hover{opacity:.9}.site-nav__cta:active{transform:scale(.96)}@media (width<=720px){.site-header__inner{padding:16px 20px}.brand__tag{display:none}.site-nav{gap:16px;font-size:13px}.site-nav a:not(.site-nav__cta){display:none}}.profile-screen{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:64px 40px 96px}@media (width<=720px){.profile-screen{padding:40px 20px 64px}}.profile-intro{text-align:center;max-width:640px;margin-bottom:48px;margin-left:auto;margin-right:auto}.eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--accent-h);margin-bottom:18px;font-size:11px;font-weight:600}.profile-intro h1 em{color:var(--accent-h);font-style:italic;font-weight:400}.profile-intro .subtitle{color:var(--text);margin-top:18px;font-size:16px;line-height:1.7}@media (width<=720px){.profile-intro .subtitle br{display:none}}.profile-split{grid-template-columns:1fr 1fr;align-items:stretch;gap:64px;display:grid}@media (width<=960px){.profile-split{grid-template-columns:1fr;gap:32px}}.visual-anchor{min-height:560px;box-shadow:var(--shadow-lg);background:linear-gradient(#0000000d 0%,#00000073 100%),radial-gradient(at 30% 20%,#ffd9c8 0%,#0000 50%),radial-gradient(at 70% 80%,#c98a73 0%,#0000 55%),linear-gradient(135deg,#d8a78f 0%,#8c4f3b 100%);border-radius:20px;position:relative;overflow:hidden}@media (width<=960px){.visual-anchor{min-height:280px}}.visual-anchor__caption{color:#fff;flex-direction:column;gap:10px;display:flex;position:absolute;inset:auto 32px 32px}.visual-anchor__caption .eyebrow{color:#ffffffd9;margin-bottom:0}.visual-anchor__caption h2{font-family:var(--serif);color:#fff;margin:0;font-size:28px;font-weight:400;line-height:1.3}.visual-anchor__caption p{color:#ffffffeb;font-size:14px;line-height:1.6}.profile-form{flex-direction:column;gap:24px;display:flex}.card{background:var(--bg-elev);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;padding:32px}@media (width<=720px){.card{border-radius:14px;padding:24px 20px}}.card__header{align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.card__step{font-family:var(--serif);color:var(--accent-h);flex-shrink:0;margin-top:4px;font-size:28px;font-style:italic;line-height:1}.card__header h2{margin-bottom:4px;font-size:22px}.card__hint{color:var(--text-soft);font-size:13px;line-height:1.55}.photo-upload{flex-direction:column;gap:12px;display:flex}.photo-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.photo-dropzone{aspect-ratio:4/5;border:1px dashed var(--border-strong);background:repeating-linear-gradient(45deg, var(--surface), var(--surface) 12px, var(--bg-elev) 12px, var(--bg-elev) 24px);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;width:100%;max-height:420px;transition:border-color .25s,background .25s,box-shadow .25s,transform .15s;display:flex;position:relative;overflow:hidden}.photo-dropzone:hover{border-color:var(--accent)}.photo-dropzone:focus-within{outline:2px solid var(--accent);outline-offset:3px}.photo-dropzone.has-photo{border:1px solid var(--border);background:var(--surface)}.photo-dropzone.is-dragging{border:1.5px dashed var(--accent);background:var(--accent-bg);box-shadow:0 0 0 6px var(--accent-bg);transform:scale(1.005)}.photo-dropzone.is-dragging *{pointer-events:none}.photo-drop-overlay{color:#fff;font-family:var(--serif-ko);letter-spacing:.04em;background:#ff7f6a99;justify-content:center;align-items:center;font-size:18px;display:flex;position:absolute;inset:0}.photo-dropzone img{object-fit:cover;width:100%;height:100%}.photo-placeholder{color:var(--text);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:24px;display:flex}.photo-placeholder svg{color:var(--accent);margin-bottom:8px}.photo-cta{font-family:var(--serif-ko);color:var(--text-h);letter-spacing:.01em;font-size:18px}.photo-sub{letter-spacing:.16em;text-transform:uppercase;color:var(--text-soft);margin-top:2px;font-size:12px}.photo-meta{background:var(--surface);color:var(--text);border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:10px 14px;font-size:13px;display:flex}.photo-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.text-button{color:var(--accent-h);cursor:pointer;letter-spacing:.04em;background:0 0;border:none;border-bottom:1px solid #0000;padding:4px 0;font-size:13px;transition:border-color .2s}.text-button:hover{border-bottom-color:var(--accent-h)}.photo-error{color:var(--accent-h);background:var(--accent-bg);border-left:2px solid var(--accent);border-radius:4px;padding:8px 12px;font-size:13px}.metric-list{flex-direction:column;gap:36px;display:flex}.metric{flex-direction:column;gap:18px;display:flex}.metric__head{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.metric__label-group{flex-direction:column;gap:6px;display:flex}.metric__step{letter-spacing:.1em;text-transform:uppercase;color:var(--accent-h);font-size:11px;font-weight:600}.metric__name{font-family:var(--serif);color:var(--text-h);font-size:22px;font-weight:400;line-height:1.3}.metric__value{align-items:baseline;gap:6px;display:flex}.metric__number{font-family:var(--serif);color:var(--accent-on);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:36px;font-weight:400;line-height:1}.metric__unit{letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);font-size:11px;font-weight:600}.metric__slider{padding-top:4px;position:relative}.metric__slider input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;margin:0}.metric__slider input[type=range]:focus{outline:none}.metric__slider input[type=range]::-webkit-slider-runnable-track{background:var(--surface-strong);border-radius:999px;height:2px}.metric__slider input[type=range]::-moz-range-track{background:var(--surface-strong);border-radius:999px;height:2px}.metric__slider input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);border:none;border-radius:50%;width:16px;height:16px;margin-top:-7px;transition:transform .15s;box-shadow:0 2px 8px #ff7f6a73}.metric__slider input[type=range]::-moz-range-thumb{background:var(--accent);border:none;border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 2px 8px #ff7f6a73}.metric__slider input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.15)}.metric__slider input[type=range]:focus-visible::-webkit-slider-thumb{transform:scale(1.15)}.metric__scale{letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);justify-content:space-between;margin-top:14px;font-size:10px;font-weight:600;display:flex}.submit-button{letter-spacing:.12em;text-transform:uppercase;width:100%;color:var(--accent-on);background:var(--accent);cursor:pointer;box-shadow:var(--shadow);border:none;border-radius:999px;justify-content:center;align-items:center;gap:12px;margin-top:16px;padding:20px 36px;font-size:13px;font-weight:600;transition:transform .3s,box-shadow .3s,opacity .2s;display:inline-flex}.submit-button:hover:not(:disabled){box-shadow:var(--shadow-lg);transform:translateY(-2px)}.submit-button:active:not(:disabled){transform:translateY(0)}.submit-button:focus-visible{outline:2px solid var(--accent-h);outline-offset:3px}.submit-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.submit-button svg{transition:transform .25s}.submit-button:hover:not(:disabled) svg{transform:translate(3px)}.submit-note{letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);justify-content:center;align-items:center;gap:8px;margin-top:14px;font-size:11px;font-weight:600;display:flex}.submit-note svg{color:var(--text-soft)}.submit-result{text-align:center;color:var(--accent);letter-spacing:.04em;margin-top:4px;font-size:13px}.spinner{border:2px solid #73180c40;border-top-color:var(--accent-on);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.api-error{max-width:480px;color:var(--accent-h);background:var(--accent-bg);border-left:2px solid var(--accent);border-radius:4px;align-self:center;margin-top:4px;padding:10px 14px;font-size:13px;line-height:1.55}.report{border-top:1px solid var(--border);flex-direction:column;gap:40px;margin-top:56px;padding-top:48px;animation:.5s ease-out both report-fade-in;display:flex}@keyframes report-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.report__header{text-align:center}.report__header h2{margin-top:14px;font-size:clamp(1.6rem,3vw,2.2rem)}.report__header h2 em{color:var(--accent-h);font-style:italic;font-weight:500}.report-section{flex-direction:column;gap:16px;display:flex}.report-section__title{letter-spacing:.28em;text-transform:uppercase;color:var(--text-soft);font-size:13px;font-family:var(--sans);border-bottom:1px solid var(--border);padding-bottom:10px;font-weight:500}.report-analysis{font-family:var(--serif-ko);color:var(--text-h);font-size:17px;line-height:1.85}.keyword-row{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.keyword-chip{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent-h);letter-spacing:.04em;border-radius:999px;padding:6px 14px;font-size:13px}.palette-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.palette-card{background:var(--bg-elev);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.palette-swatch{width:100%;height:80px}.palette-meta{flex-direction:column;gap:4px;padding:14px 16px 16px;display:flex}.palette-meta strong{font-family:var(--serif-ko);color:var(--text-h);font-size:16px;font-weight:500}.palette-hex{letter-spacing:.16em;color:var(--text-soft);text-transform:uppercase;font-family:SFMono-Regular,Menlo,monospace;font-size:11px}.palette-meta p{color:var(--text);margin-top:4px;font-size:13px;line-height:1.6}.look-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;display:grid}.look-card{background:var(--bg-elev);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;gap:10px;padding:28px 24px 24px;transition:box-shadow .25s,transform .25s;display:flex;position:relative;overflow:hidden}.look-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.look-card__media{aspect-ratio:1;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f4ece2 0%,#ead9cf 100%);margin:-28px -24px 6px;overflow:hidden}.look-card__media img{object-fit:cover;width:100%;height:100%;display:block}.look-card__media--empty{background:repeating-linear-gradient(45deg,#00000006 0 8px,#0000 8px 16px),linear-gradient(135deg,#f4ece2 0%,#ead9cf 100%)}.look-card__index{-webkit-backdrop-filter:blur(6px);font-family:var(--serif);color:var(--accent-h);z-index:1;background:#ffffffd9;border-radius:999px;padding:4px 10px;font-size:18px;font-style:italic;line-height:1;position:absolute;top:14px;right:18px}.look-card__occasion{letter-spacing:.24em;text-transform:uppercase;color:var(--text-soft);font-size:11px}.look-card h4{font-family:var(--serif-ko);color:var(--text-h);margin:0;font-size:20px;font-weight:500;line-height:1.3}.look-card__desc{color:var(--text);font-size:14px;line-height:1.65}.look-card ul{color:var(--text);flex-direction:column;gap:8px;margin:4px 0 0;padding:0;font-size:13.5px;line-height:1.55;list-style:none;display:flex}.look-card ul li{padding-left:14px;position:relative}.look-card ul li:before{content:"";background:var(--accent);width:6px;height:1px;position:absolute;top:9px;left:0}.tip-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.tip-list li{background:var(--surface);color:var(--text-h);border-left:2px solid var(--accent);border-radius:10px;padding:14px 18px;font-size:14px;line-height:1.65}.site-footer{background:var(--bg-elev);border-top:1px solid var(--surface-strong);margin-top:auto;padding:64px 32px;font-size:13px;line-height:1.7}.site-footer__inner{text-align:center;flex-direction:column;align-items:center;gap:24px;max-width:1280px;margin:0 auto;display:flex}.site-footer__inner .brand__name{color:var(--accent);letter-spacing:-.01em;font-size:22px;font-weight:700}.site-footer__links{flex-wrap:wrap;justify-content:center;gap:32px;display:flex}.site-footer__links a,.site-footer__links button{cursor:pointer;letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);background:0 0;border:none;padding:0;font-family:inherit;font-size:11px;font-weight:600;transition:color .3s,transform .3s}.site-footer__links a:hover,.site-footer__links button:hover{color:var(--accent);transform:translateY(-2px)}.consent-list{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;gap:10px;margin-top:28px;padding:18px 18px 14px;display:flex}.consent-legend{letter-spacing:.18em;text-transform:uppercase;color:var(--accent-h);padding:0 6px;font-size:11px;font-weight:600}.consent-item{color:var(--text-h);cursor:pointer;align-items:flex-start;gap:10px;font-size:13px;line-height:1.6;display:flex}.consent-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin-top:3px}.consent-item strong{color:var(--accent-h);font-weight:600}.consent-link{font:inherit;color:var(--accent-h);text-underline-offset:3px;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.consent-link:hover{color:var(--accent)}.report-disclaimer{background:var(--surface);color:var(--text-soft);border-left:2px solid var(--border-strong);border-radius:10px;margin-top:8px;padding:14px 18px;font-size:12.5px;line-height:1.65}.legal-modal-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);background:#3c1e166b;justify-content:center;align-items:center;padding:24px;animation:.2s ease-out legal-fade-in;display:flex;position:fixed;inset:0}@keyframes legal-fade-in{0%{opacity:0}to{opacity:1}}.legal-modal{background:var(--bg-elev);width:100%;max-width:640px;max-height:86vh;box-shadow:var(--shadow-lg);border-radius:18px;flex-direction:column;animation:.25s ease-out legal-slide-up;display:flex;overflow:hidden}@keyframes legal-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.legal-modal__header{border-bottom:1px solid var(--border);background:var(--bg-elev);justify-content:space-between;align-items:center;gap:16px;padding:22px 28px;display:flex}.legal-modal__header h2{font-family:var(--serif);color:var(--text-h);margin:0;font-size:22px;font-weight:500}.legal-modal__close{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:50%;flex-shrink:0;font-size:22px;line-height:1;transition:background .2s,color .2s}.legal-modal__close:hover{background:var(--accent-bg);color:var(--accent-h)}.legal-modal__body{color:var(--text);padding:24px 28px;font-size:14px;line-height:1.75;overflow-y:auto}.legal-modal__body h3{font-family:var(--serif-ko);color:var(--text-h);letter-spacing:.01em;margin-top:22px;margin-bottom:8px;font-size:15px;font-weight:600}.legal-modal__body h3:first-child{margin-top:0}.legal-modal__body p{margin-bottom:12px}.legal-modal__body ul{margin-bottom:12px;padding-left:20px;list-style:outside}.legal-modal__body ul li{margin-bottom:4px}.legal-modal__body strong{color:var(--accent-h);font-weight:600}.legal-modal__body a{color:var(--accent-h);text-underline-offset:3px;text-decoration:underline}.legal-modal__body a:hover{color:var(--accent)}.legal-modal__footer{border-top:1px solid var(--border);background:var(--surface);letter-spacing:.16em;text-transform:uppercase;color:var(--text-soft);text-align:right;padding:14px 28px;font-size:11px}.legal-modal__footer p{margin:0}@media (width<=720px){.legal-modal-overlay{padding:12px}.legal-modal{border-radius:14px;max-height:92vh}.legal-modal__header{padding:18px 20px}.legal-modal__header h2{font-size:19px}.legal-modal__body{padding:18px 20px;font-size:13.5px}.legal-modal__footer{padding:12px 20px}}.site-footer__copy{color:var(--text-soft);opacity:.7;font-size:13px}
