:root{--bg:#fbf9f5;--surface:#fff;--surface-low:#f5f3ef;--primary:#0b3b2c;--primary-deep:#002419;--gold:#c5a059;--gold-bright:#d4af37;--border:#c5a0594d;--text-h:#051812;--text:#414944;--text-muted:#717974;--error:#ba1a1a;--shadow:0 16px 36px -12px #0b3b2c14, 0 2px 6px 0 #c5a0591f;--serif:"Playfair Display", Georgia, serif;--sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-4xl:32px;--text-display:46px;font:var(--text-base)/1.625 var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{background:var(--bg);color:var(--text);margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{font-family:var(--serif);color:var(--text-h);margin:0;font-weight:500}p{margin:0}.molecular-canvas{pointer-events:none;z-index:0;width:100vw;height:100vh;position:fixed;inset:0}.workspace-grid,.panel,.app-footer{z-index:1;position:relative}.app{box-sizing:border-box;flex-direction:column;flex:1;gap:28px;width:100%;max-width:100%;min-height:100svh;margin:0;padding:0 48px;display:flex}.panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:4px;flex-direction:column;gap:18px;padding:28px;display:flex}.panel h2{font-size:var(--text-2xl);line-height:1.3}.panel button{font-family:var(--sans);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--gold);background:var(--primary);color:var(--gold-bright);cursor:pointer;border-radius:4px;align-self:flex-start;padding:12px 24px;font-weight:600;transition:opacity .2s,background-color .2s}.panel button:hover:not(:disabled){background:var(--primary-deep)}.panel button:disabled{opacity:.45;cursor:not-allowed}.status-panel{background:var(--surface-low);flex-flow:wrap;justify-content:space-between;align-items:center;gap:16px}.note{font-size:var(--text-base);color:var(--text-muted)}.metrics{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.metric{border:1px solid var(--border);background:var(--bg);border-radius:4px;flex-direction:column;gap:8px;padding:18px;display:flex}.metric h3{font-size:var(--text-lg);text-transform:capitalize}.metric-value{font-family:var(--serif);font-size:var(--text-xl);color:var(--primary)}.notes{font-size:var(--text-base);letter-spacing:.06em;text-transform:uppercase;color:var(--gold);font-weight:600}.error-text{color:var(--error);font-size:var(--text-sm)}.panel button.metric-interactive{text-align:left;text-transform:none;letter-spacing:normal;background:var(--bg);color:var(--text);border:1px solid var(--border);align-self:stretch;padding:18px;font-weight:400;transition:border-color .2s,box-shadow .2s,background-color .2s}.panel button.metric-interactive:hover:not(:disabled){background:var(--surface);border-color:var(--gold)}.panel button.metric-active{background:var(--surface);border-color:var(--primary);box-shadow:0 0 0 2px #0b3b2c26}.metric-header{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.metric-badge{font-family:var(--sans);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--gold);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:2px 8px;font-weight:600}.insight-box{background:var(--surface-low);border-left:3px solid var(--primary)}.section-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.overall-badge{font-family:var(--serif);font-size:var(--text-base);color:var(--gold-bright);background:var(--primary);border:1px solid var(--gold);border-radius:4px;padding:6px 14px;font-weight:600}.insight-layout{align-items:flex-start;gap:20px;display:flex}.mask-column{flex-direction:column;flex-shrink:0;align-items:center;gap:8px;display:flex}.mask-stage{border:1px solid var(--border);background:var(--surface);border-radius:4px;width:190px;line-height:0;position:relative;overflow:hidden}.mask-base-img{width:100%;height:auto;display:block}.mask-overlay-img{object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.mask-hint-overlay{color:#fbf9f5;text-align:center;pointer-events:none;background:linear-gradient(#0000 0%,#0b3b2cb8 30%,#0b3b2ceb 100%);flex-direction:column;gap:2px;padding:18px 8px 7px;line-height:1.25;display:flex;position:absolute;bottom:0;left:0;right:0}.mask-hint-title{font-size:var(--text-sm);text-transform:capitalize;color:var(--gold-bright);font-weight:600}.mask-hint-sub{font-size:var(--text-sm);opacity:.92}.panel button.mask-toggle-btn{font-size:var(--text-sm);color:var(--primary);border:1px solid var(--border);background:0 0;align-self:stretch;padding:6px 10px}.panel button.mask-toggle-btn:hover:not(:disabled){background:var(--surface);border-color:var(--gold)}.insight-text{flex-direction:column;gap:10px;display:flex}.workspace-grid{grid-template-columns:420px minmax(0,1fr);align-items:start;gap:32px;display:grid}.workspace-left{flex-direction:column;gap:20px;display:flex}.workspace-right{flex-direction:column;gap:28px;display:flex}.empty-state-panel{background:var(--surface-low);border-style:dashed}.product-visual{background:var(--surface-low);border:1px solid var(--border);border-radius:4px;justify-content:center;align-items:center;padding:12px;display:flex}.product-visual-prep{flex-shrink:0;width:120px}.product-svg{width:100%;max-width:120px;height:auto;display:block}.prep-card{flex-direction:row;align-items:center;gap:20px}.prep-card-body{flex-direction:column;gap:6px;display:flex}.studio-card{position:relative}.panel button.card-remove-btn{z-index:2;letter-spacing:0;border:1px solid var(--border);background:var(--surface);width:28px;height:28px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;display:flex;position:absolute;top:8px;right:8px}.panel button.card-remove-btn:hover:not(:disabled){background:var(--surface);border-color:var(--error);color:var(--error)}.card-confirm{z-index:3;text-align:center;background:#fbf9f5f0;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:16px;display:flex;position:absolute;inset:0}.card-confirm p{font-family:var(--serif);font-size:var(--text-lg);color:var(--text-h)}.card-confirm-actions{gap:8px;display:flex}.panel .card-confirm-actions button{align-self:auto;padding:8px 14px}.panel button.card-confirm-delete{background:var(--error);border-color:var(--error);color:#fff}.panel button.card-confirm-delete:hover:not(:disabled){background:#8f1414}.fragrance-notes{font-size:var(--text-base);color:var(--primary);flex-direction:column;gap:2px;font-weight:600;display:flex}.preview-stage{border:1px solid var(--border);border-radius:4px;flex-direction:column;align-items:center;display:inline-flex;position:relative;overflow:hidden}.preview-switcher{border:1px solid var(--gold);color:#fbf9f5;background:#0b3b2cd9;border-radius:4px;justify-content:space-between;align-items:center;gap:6px;padding:3px;display:flex;position:absolute;bottom:6px;left:6px;right:6px}.panel button.preview-nav-btn{letter-spacing:0;width:26px;height:26px;color:var(--gold-bright);background:0 0;border:1px solid #d4af3773;justify-content:center;align-self:auto;align-items:center;padding:0;font-size:18px;line-height:1;display:flex}.panel button.preview-nav-btn:hover:not(:disabled){background:#d4af372e}.preview-counter{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:#fbf9f5;font-size:11px;font-weight:600}.label-with-hint{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.info-badge{font-size:var(--text-sm);color:var(--primary);background:var(--surface-low);border:1px solid var(--gold);cursor:help;border-radius:999px;padding:2px 8px;font-weight:600}.field-hint{font-size:var(--text-base);color:var(--text-muted);line-height:1.4}.status-panel{flex-direction:column;align-items:stretch;gap:10px}.status-panel-loading{border-color:var(--gold);background:var(--surface)}.status-panel-error{border-color:var(--error)}.status-row{align-items:center;gap:12px;display:flex}.status-text{color:var(--text-h);font-weight:600}.spinner{border:2.5px solid #c5a0594d;border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:.8s linear infinite diamandis-spin}@keyframes diamandis-spin{to{transform:rotate(360deg)}}.progress-bar-track{background:var(--border);border-radius:999px;width:100%;height:4px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--primary), var(--gold-bright));border-radius:999px;width:45%;height:100%;animation:1.2s ease-in-out infinite alternate diamandis-progress}@keyframes diamandis-progress{0%{transform:translate(-20%)}to{transform:translate(140%)}}.longevity-badge{font-family:var(--sans);font-size:var(--text-sm);color:var(--gold-bright);background:var(--primary);border:1px solid var(--gold);white-space:nowrap;border-radius:999px;padding:2px 10px;font-weight:600}.custom-perfume-card{background:var(--surface-low);border-left:3px solid var(--gold)}.faq-panel{z-index:1;cursor:pointer;transition:border-color .2s,box-shadow .2s;position:relative}.faq-panel:hover{border-color:var(--gold)}.faq-panel-summary{-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:16px;list-style:none;display:flex}.faq-panel-summary::-webkit-details-marker{display:none}.faq-panel-title{flex-direction:column;gap:4px;display:flex}.faq-toggle-badge{font-family:var(--sans);font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--primary);background:var(--surface-low);border:1px solid var(--border);white-space:nowrap;border-radius:4px;padding:6px 14px;font-weight:600;transition:background-color .2s,border-color .2s,transform .2s}.faq-panel[open] .faq-toggle-badge{background:var(--primary);color:var(--gold-bright);border-color:var(--gold)}.faq-panel[open] .faq-panel-summary{margin-bottom:8px}.faq-list{cursor:default;flex-direction:column;gap:10px;display:flex}.faq-item{border:1px solid var(--border);background:var(--bg);border-radius:4px;padding:14px 18px}.faq-item summary{color:var(--text-h);cursor:pointer;font-weight:600}.faq-item p{font-size:var(--text-sm);color:var(--text);font-size:var(--text-sm);margin-top:10px}.studio-layout{z-index:1;flex-direction:column;gap:28px;display:flex;position:relative}.studio-actions{flex-wrap:wrap;gap:12px;display:flex}.panel button.secondary-btn{color:var(--primary);border:1px solid var(--border);background:0 0}.panel button.secondary-btn:hover:not(:disabled){border-color:var(--gold);background:var(--surface-low)}.studio-form{background:var(--surface-low);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:16px;padding:20px;display:flex}.studio-form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.score-badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.skin-age-badge{font-family:var(--serif);font-size:var(--text-base);color:var(--primary);background:var(--surface-low);border:1px solid var(--gold);border-radius:4px;padding:6px 12px;font-weight:600}.source-tabs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.panel button.source-tab{font-size:var(--text-sm);background:var(--surface-low);color:var(--text-h);border:1px solid var(--border);text-align:center;align-self:stretch;padding:8px 12px}.panel button.source-tab:hover:not(:disabled){border-color:var(--gold);background:var(--surface)}.panel button.source-tab-active,.panel button.source-tab-active:hover:not(:disabled){background:var(--primary);color:var(--gold-bright);border-color:var(--gold)}.dropzone-box{cursor:pointer;border-style:dashed;align-items:center;min-height:268px;transition:border-color .2s,background-color .2s}.dropzone-box:hover,.dropzone-active{border-color:var(--gold);background:var(--surface)}.dropzone-placeholder{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:24px;display:flex}.dropzone-title{color:var(--primary);font-weight:600}.science-panel{background:var(--surface);border:1px solid var(--border)}.science-panel .metric{background:var(--surface-low);border-left:3px solid var(--gold)}.science-citations{background:var(--surface-low);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:4px;margin-top:8px;padding:14px 18px}.science-citations-title{font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--primary);margin-bottom:8px;font-weight:600}.science-citations-list{font-size:var(--text-base);color:var(--text);flex-direction:column;gap:6px;margin:0;padding-left:18px;line-height:1.45;display:flex}.science-citations-list strong{color:var(--text-h)}.science-citations-list em{color:var(--gold);font-style:normal}@media (width<=640px){.prep-card{flex-direction:column;align-items:stretch}.product-visual-prep{width:100%}.app{padding:32px 16px 56px}.app-header h1{font-size:var(--text-3xl)}.panel{padding:20px}.insight-layout{flex-direction:column}}@media (width<=960px){.workspace-grid{grid-template-columns:1fr}.workspace-left{position:static}}.curation-panel-highlight{border:1px solid var(--gold);animation:.6s ease-out curation-reveal;box-shadow:0 12px 36px -8px #0b3b2c1f,0 0 0 1px #c5a05966,0 0 24px #c5a0592e}@keyframes curation-reveal{0%{opacity:.6;transform:translateY(8px);box-shadow:0 0 #c5a05900}to{opacity:1;transform:translateY(0)}}.curation-hero-badge{font-family:var(--sans);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--primary-deep);background:linear-gradient(135deg, #f7e7b4, var(--gold-bright));border:1px solid var(--gold);white-space:nowrap;border-radius:999px;padding:6px 14px;font-weight:700;box-shadow:0 2px 10px #c5a05947}.skin-results-top{grid-template-columns:minmax(0,1fr) 350px;align-items:stretch;gap:20px;display:grid}.skin-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.skin-metrics-grid .metric-interactive{flex-direction:column;justify-content:space-between;min-height:90px;padding:14px 16px;transition:border-color .2s,box-shadow .2s,background-color .2s;display:flex}.skin-metrics-grid .metric-interactive h3{font-size:var(--text-lg);font-weight:600;line-height:1.25}.skin-metrics-grid .metric-interactive .metric-value{font-size:var(--text-xl);margin-top:4px;font-weight:600}.skin-portrait-card{background:var(--surface-low);border:1px solid var(--border);border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:14px;display:flex}.skin-portrait-card .mask-stage{border:1px solid var(--border);background:var(--surface);border-radius:4px;width:270px;line-height:0;position:relative;overflow:hidden}.skin-physics-banner{background:var(--surface-low);border-left:3px solid var(--primary);flex-direction:column;gap:12px;margin-top:6px;padding:20px 24px;display:flex}.skin-physics-grid{grid-template-columns:1fr 1fr;gap:28px;display:grid}.physics-col{flex-direction:column;gap:6px;display:flex}.physics-label{font-size:var(--text-base);letter-spacing:.05em;text-transform:uppercase;color:var(--text-h);margin:0;font-weight:600}.physics-desc{font-size:var(--text-base);color:var(--text);margin:0;line-height:1.55}.panel button.buy-flacon-btn{font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;background:var(--surface);color:var(--primary);border:1px solid var(--gold);border-radius:4px;align-self:stretch;margin-top:auto;padding:10px 14px;font-weight:600;transition:all .2s}.panel button.buy-flacon-btn:hover:not(:disabled){background:var(--primary);color:var(--gold-bright)}.panel button.buy-flacon-btn-added,.panel button.buy-flacon-btn-added:hover:not(:disabled){background:var(--primary-deep);color:var(--gold-bright);border-color:var(--gold-bright)}.mask-stage-loading{background:var(--surface-low);min-height:220px;position:relative}.mask-skeleton{background:linear-gradient(90deg,#c5a05914 25%,#c5a05938 50%,#c5a05914 75%) 0 0/200% 100%;width:100%;height:100%;min-height:220px;animation:1.4s ease-in-out infinite shimmer-load;position:absolute;inset:0}@keyframes shimmer-load{0%{background-position:200% 0}to{background-position:-200% 0}}.mask-img-hidden{opacity:0}.mask-img-visible{opacity:1;transition:opacity .3s ease-in}.mask-overlay-img{animation:.35s ease-out mask-fade-in}@keyframes mask-fade-in{0%{opacity:0}to{opacity:1}}@media (width<=1560px){.skin-metrics-grid .metric-badge{display:none}}@media (width<=1100px){.skin-results-top{grid-template-columns:1fr}.skin-physics-grid{grid-template-columns:1fr;gap:16px}}@media (width<=768px){.skin-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.field{flex-direction:column;gap:8px;display:flex}.field label{font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--text-h);font-weight:600}.field input,.field select{font:inherit;font-size:var(--text-base);border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:4px;width:100%;padding:11px 14px;transition:border-color .2s,box-shadow .2s}.field input:focus,.field select:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #0b3b2c14}.select-wrapper{width:100%;position:relative}.select-wrapper select{cursor:pointer;appearance:none;width:100%;padding-right:36px}.select-arrow{pointer-events:none;color:var(--text-muted);font-size:14px;line-height:1;transition:transform .2s,color .2s;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.select-wrapper:focus-within .select-arrow{color:var(--gold);transform:translateY(-50%)rotate(180deg)}.preview-box{background:var(--surface-low);border:1px solid var(--border);border-radius:4px;justify-content:center;padding:14px;display:flex}.preview-img{object-fit:cover;border-radius:4px;max-width:100%;max-height:240px}.checkbox-row{font-size:var(--text-sm);color:var(--text-h);cursor:pointer;align-items:flex-start;gap:10px;display:flex}.checkbox-row input{accent-color:var(--primary);margin-top:4px}.app-header{z-index:20;background:var(--bg);border-bottom:1px solid var(--border);flex-direction:column;padding:20px 0;display:flex;position:sticky;top:0}.header-navbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 24px;display:flex}.brand-mark{flex-shrink:0;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-logo{width:48px;height:62px;display:block}.brand-text{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.brand-text h1{font-family:var(--serif);font-size:var(--text-3xl);letter-spacing:.15em;color:var(--primary);margin:0;font-weight:600;line-height:1.1}.brand-text .eyebrow{font-size:var(--text-base);letter-spacing:.08em;color:var(--gold);white-space:nowrap;margin:0;font-weight:600;line-height:1}.header-hero-inline{flex:520px;align-items:center;gap:16px;max-width:1200px;margin:0 auto;display:flex}.header-hero-inline h2{font-family:var(--serif);font-size:var(--text-2xl);color:var(--primary);white-space:nowrap;margin:0;font-weight:600;line-height:1.2}.hero-sep{background:var(--border);flex-shrink:0;width:1px;height:34px;font-size:0}.header-desc{font-size:var(--text-base);color:var(--text-muted);flex:1;margin:0;line-height:1.45}.mode-nav{flex-direction:row;flex-shrink:0;align-items:center;gap:8px;display:flex}.mode-link{font-size:var(--text-base);letter-spacing:.06em;text-transform:uppercase;text-align:center;box-sizing:border-box;border:1px solid var(--border);background:var(--surface);height:42px;color:var(--text-h);white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;padding:0 16px;font-weight:600;text-decoration:none;transition:border-color .2s,background-color .2s;display:inline-flex}.mode-link:hover{border-color:var(--gold)}.mode-link-active{background:var(--primary);color:var(--gold-bright);border-color:var(--gold)}.header-bag-wrapper{display:inline-flex;position:relative}.panel button.header-bag-btn,.header-bag-btn{box-sizing:border-box;cursor:pointer;justify-content:center;align-items:center;gap:6px;height:42px;padding:0 14px;display:inline-flex}.header-bag-btn svg{display:block}.header-bag-btn-active{border-color:var(--gold);color:var(--gold-bright);background:var(--primary)}.bag-count{background:var(--gold);min-width:17px;height:17px;color:var(--primary-deep);border-radius:999px;justify-content:center;align-items:center;padding:0 4px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.header-bag-dropdown{background:var(--surface);border:1px solid var(--border);z-index:100;border-radius:4px;flex-direction:column;gap:12px;width:280px;padding:16px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 30px #0b3b2c26}.bag-dropdown-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:8px;display:flex}.bag-dropdown-header strong{font-family:var(--serif);font-size:var(--text-base);color:var(--text-h)}.bag-clear-btn{color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.bag-clear-btn:hover{color:var(--error)}.bag-empty{font-size:var(--text-sm);color:var(--text-muted);margin:6px 0;line-height:1.4}.bag-list{flex-direction:column;gap:8px;max-height:180px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.bag-item{font-size:var(--text-sm);color:var(--text-h);border-bottom:1px dashed #c5a05933;justify-content:space-between;align-items:center;padding-bottom:4px;display:flex}.bag-item-size{color:var(--gold);text-transform:uppercase;font-size:11px}.bag-checkout-btn{background:var(--primary);width:100%;color:var(--gold-bright);border:1px solid var(--gold);font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:4px;padding:10px;font-weight:600}.bag-checkout-btn:hover{background:var(--primary-deep)}@media (width<=1200px){.header-hero-inline{flex-direction:column;align-items:flex-start;gap:4px}.hero-sep{display:none}.header-hero-inline h2{white-space:normal}}@media (width<=900px){.header-hero-inline{flex-direction:column;flex-basis:100%;align-items:flex-start;gap:6px;margin:0}.hero-sep{display:none}.header-hero-inline h2,.brand-text .eyebrow{white-space:normal}.app-header{position:static}}.app-footer{z-index:20;background:var(--bg);border-top:1px solid var(--border);font-size:var(--text-base);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:auto;padding:14px 0;display:flex;position:sticky;bottom:0}.app-footer strong{color:var(--text-h)}.app-footer a{color:var(--primary);border-bottom:1px solid var(--gold);font-weight:600;text-decoration:none;transition:color .2s,border-color .2s}.app-footer a:hover{color:var(--gold)}@media (width<=900px){.app-footer{position:static}}
