*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--black:#0a0a0a;--dark:#141414;--card:#1c1c1c;--border-dark:#2a2a2a;--white:#fff;--cream:#f7f4f0;--gray:#8a8a8a;--gray-light:#d4d4d4;--opi-red:#c4003b;--opi-red-h:#a00030;--landing-bg:#faf8f5;--display:"Bebas Neue", Impact, sans-serif;--serif:"Playfair Display", Georgia, serif;--sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif}html,body{height:100%;font-family:var(--sans);background:var(--black);color:var(--white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#root{flex-direction:column;height:100%;display:flex}button{cursor:pointer;background:0 0;border:none;font-family:inherit}img{display:block}.app{flex-direction:column;max-width:430px;min-height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden auto}.brand-mark{font-family:var(--sans);letter-spacing:7px;color:var(--white);font-size:18px;font-weight:800}.brand-mark.dark{color:var(--black)}.back-btn{z-index:30;-webkit-backdrop-filter:blur(8px);color:#fff;background:#00000059;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background .2s;display:flex;position:absolute;top:18px;left:18px}.back-btn:hover{background:#0009}.btn-primary{background:var(--opi-red);color:var(--white);letter-spacing:.3px;border-radius:100px;align-items:center;gap:10px;padding:16px 32px;font-size:15px;font-weight:600;transition:background .2s,transform .15s,opacity .2s;display:inline-flex}.btn-primary:hover{background:var(--opi-red-h)}.btn-primary:active{transform:scale(.97)}.btn-primary.btn-disabled{opacity:.4;pointer-events:none}.section-eyebrow{letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:16px;font-size:10px}.pulse-dot{background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite pulseDot;display:inline-block}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.landing{background:var(--landing-bg);flex-direction:column;flex:1;min-height:100dvh;display:flex;position:relative;overflow:hidden}.landing:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#c4003b1c 0%,#c4003b0a 50%,#0000 72%);border-radius:50%;width:360px;height:360px;position:absolute;top:-100px;right:-80px}.landing:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle,#c4003b12 0%,#0000 65%);border-radius:50%;width:280px;height:280px;position:absolute;bottom:40px;left:-70px}.landing-header,.landing-main,.landing-swatches,.landing-footer{z-index:2;position:relative}.landing-header{justify-content:space-between;align-items:center;padding:52px 28px 0;display:flex}.opikorea-link{color:#0000004d;letter-spacing:.3px;font-size:11px;font-weight:500;text-decoration:none;transition:color .2s}.opikorea-link:hover{color:#0009}.landing-main{flex-direction:column;flex:1;padding:32px 28px 28px;display:flex}.landing-eyebrow{letter-spacing:2px;text-transform:uppercase;color:#00000073;background:#c4003b12;border-radius:100px;align-self:flex-start;align-items:center;gap:8px;margin-bottom:22px;padding:6px 14px;font-size:10px;font-weight:500;display:inline-flex}.eyebrow-dot{background:var(--opi-red);border-radius:50%;flex-shrink:0;width:5px;height:5px}.landing-title{font-family:var(--display);color:#0c0c0c;letter-spacing:3px;text-transform:uppercase;margin-bottom:26px;font-size:clamp(82px,22vw,100px);font-weight:400;line-height:.88}.landing-title em{font-family:var(--serif);color:var(--opi-red);letter-spacing:-1.5px;text-transform:none;font-size:clamp(56px,15vw,70px);font-style:italic;font-weight:700;line-height:1.1;display:block}.landing-desc{color:#0000006b;letter-spacing:.1px;max-width:270px;margin-bottom:40px;font-size:13px;line-height:1.85}.landing-ctas{flex-direction:column;gap:10px;display:flex}.cta-primary{cursor:pointer;background:var(--opi-red);color:#fff;letter-spacing:.6px;border-radius:16px;justify-content:center;align-items:center;gap:12px;padding:18px 24px;font-size:14px;font-weight:600;transition:transform .15s,background .2s,box-shadow .2s;display:flex;box-shadow:0 8px 28px #c4003b4d}.cta-primary:hover{background:var(--opi-red-h);transform:translateY(-2px);box-shadow:0 14px 36px #c4003b5c}.cta-primary:active{box-shadow:none;transform:scale(.98)}.cta-secondary{cursor:pointer;color:#000000ad;letter-spacing:.3px;background:#fff;border:1.5px solid #0000001c;border-radius:16px;justify-content:center;align-items:center;gap:12px;padding:18px 24px;font-size:14px;font-weight:500;transition:transform .15s,background .2s,box-shadow .2s;display:flex;box-shadow:0 2px 12px #0000000f}.cta-secondary:hover{background:#f5f3f0;transform:translateY(-2px);box-shadow:0 6px 20px #00000017}.cta-secondary:active{transform:scale(.98)}.landing-swatches{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:16px;padding:36px 28px 0;display:flex;overflow-x:auto}.landing-swatches::-webkit-scrollbar{display:none}.swatch-item{opacity:0;flex-direction:column;flex-shrink:0;align-items:center;gap:10px;animation:.5s forwards swatchIn;display:flex;transform:translateY(12px)}@keyframes swatchIn{to{opacity:1;transform:translateY(0)}}.swatch-circle{border-radius:50%;flex-shrink:0;width:62px;height:62px;position:relative;overflow:hidden;box-shadow:0 8px 28px #00000029,0 2px 8px #00000014,inset 0 -5px 14px #0000002e,inset 0 5px 12px #ffffff4d}.swatch-gloss{pointer-events:none;background:radial-gradient(#ffffffa6 0%,#0000 100%);border-radius:50%;width:34%;height:28%;position:absolute;top:12%;left:18%}.swatch-text{flex-direction:column;align-items:center;gap:2px;display:flex}.swatch-name{color:#00000073;text-align:center;white-space:nowrap;font-size:9px;font-weight:500;line-height:1.3}.swatch-code{color:#00000040;font-family:monospace;font-size:9px}.landing-footer{margin-top:24px;padding:20px 28px 44px}.landing-footer p{color:#00000038;letter-spacing:.2px;font-size:10px}.liquid-defs-svg{pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.liquid-bg{z-index:0;background:#07040a;position:absolute;inset:0;overflow:hidden}.liquid-layer{pointer-events:none;position:absolute;inset:0}.liquid-goo-layer{filter:url(#goo)}.liquid-nude-layer{mix-blend-mode:screen}.liquid-pearl-layer{filter:url(#glow);mix-blend-mode:overlay}.blob{will-change:transform;transform-origin:50%;border-radius:50%;position:absolute}.blob-deep-a{background:radial-gradient(circle at 42% 38%,#641637fa 0%,#410a20e0 38%,#1c0510a6 65%,#0000 100%);width:75vw;max-width:340px;height:80vw;max-height:360px;top:-10%;left:-15%}.blob-deep-b{background:radial-gradient(circle at 58% 52%,#4b0f2af2 0%,#2d0818cc 42%,#12040c8c 70%,#0000 100%);width:85vw;max-width:380px;height:78vw;max-height:350px;top:28%;right:-22%}.blob-deep-c{background:radial-gradient(circle at 48% 55%,#6e1c3ce6 0%,#460f24b8 48%,#0000 100%);width:60vw;max-width:270px;height:65vw;max-height:290px;bottom:-5%;left:12%}.blob-nude-a{filter:blur(6px);background:radial-gradient(circle at 50% 44%,#c4a08a85 0%,#a87d6952 48%,#8c62501f 72%,#0000 100%);width:58vw;max-width:260px;height:55vw;max-height:245px;top:22%;left:10%}.blob-nude-b{filter:blur(8px);background:radial-gradient(circle at 54%,#d7b2a275 0%,#b9917d42 52%,#0000 100%);width:48vw;max-width:215px;height:58vw;max-height:260px;bottom:12%;right:2%}.blob-nude-c{filter:blur(10px);background:radial-gradient(circle at 46% 48%,#cda89466 0%,#af877333 55%,#0000 100%);width:42vw;max-width:188px;height:45vw;max-height:200px;top:52%;left:30%}.blob-pearl-a{background:radial-gradient(circle at 44% 40%,#f8f0eb61 0%,#e1d2ca2e 55%,#0000 100%);width:38vw;max-width:170px;height:33vw;max-height:148px;top:8%;right:8%}.blob-pearl-b{background:radial-gradient(circle at 50% 52%,#fff8f447 0%,#ebdcd41a 62%,#0000 100%);width:32vw;max-width:143px;height:38vw;max-height:170px;top:42%;left:2%}.liquid-turbulence-wash{filter:url(#turbulence);will-change:opacity;background:radial-gradient(130% 110% at 35%,#a03c581a 0%,#641e370f 40%,#0000 68%),radial-gradient(90% 120% at 72% 38%,#c49e8714 0%,#0000 60%);position:absolute;inset:0}.liquid-vignette{background:radial-gradient(80% 80% at 50% 42%,#0000 0%,#0503079e 100%);position:absolute;inset:0}.liquid-fade-top{background:linear-gradient(#050307a6 0%,#0000 100%);height:32%;position:absolute;top:0;left:0;right:0}.liquid-fade-bottom{background:linear-gradient(#0000 0%,#05030773 55%,#050307eb 100%);height:52%;position:absolute;bottom:0;left:0;right:0}.camera-page{background:#000;flex-direction:column;flex:1;min-height:100dvh;display:flex;position:relative;overflow:hidden}.camera-view{background:#0d0d0d;flex:1;position:relative;overflow:hidden}.camera-video{object-fit:cover;width:100%;height:100%}.camera-overlay{background:radial-gradient(60% 70%,#0000 0%,#00000080 100%);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.guide-box{width:240px;height:300px;transition:all .4s;position:relative}.corner{border:0 solid;width:22px;height:22px;transition:border-color .4s;position:absolute}.corner-tl{border-top-width:2.5px;border-left-width:2.5px;border-radius:4px 0 0;top:0;left:0}.corner-tr{border-top-width:2.5px;border-right-width:2.5px;border-radius:0 4px 0 0;top:0;right:0}.corner-bl{border-bottom-width:2.5px;border-left-width:2.5px;border-radius:0 0 0 4px;bottom:0;left:0}.corner-br{border-bottom-width:2.5px;border-right-width:2.5px;border-radius:0 0 4px;bottom:0;right:0}.guide-scanning{color:#ffffffb3}.guide-detected{color:#4ade80}.guide-warning{color:#fbbf24}.guide-scan-line{inset-x:0;background:linear-gradient(90deg,#0000,#fffc,#0000);height:2px;animation:1.8s ease-in-out infinite guideScn;position:absolute}@keyframes guideScn{0%{opacity:0;top:0%}10%{opacity:1}90%{opacity:1}to{opacity:0;top:100%}}.guide-label{white-space:nowrap;color:#ffffffbf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0006;border-radius:100px;padding:6px 14px;font-size:12px;position:absolute;bottom:-32px;left:50%;transform:translate(-50%)}.guide-detected-badge{color:#4ade80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;background:#00000080;border:1px solid #4ade804d;border-radius:100px;align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:600;display:flex;position:absolute;bottom:-40px;left:50%;transform:translate(-50%)}.camera-status{text-align:center;background:#000;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:12px 24px;font-size:13px;display:flex}.status-scanning{color:#aaa;align-items:center;gap:8px;display:flex}.status-ok{color:#4ade80}.status-err{color:#f87171}.camera-controls{background:#000;justify-content:center;padding:20px 0 8px;display:flex}.shutter-btn{border:3px solid #ffffff80;border-radius:50%;justify-content:center;align-items:center;width:74px;height:74px;transition:border-color .3s,transform .15s;display:flex}.shutter-btn.shutter-ready{border-color:#ffffffe6}.shutter-btn:hover{border-color:#fff}.shutter-btn:active{transform:scale(.92)}.shutter-btn:disabled{opacity:.4}.shutter-inner{background:#fff;border-radius:50%;width:56px;height:56px;transition:background .2s}.shutter-ready .shutter-inner{background:#fff}.shutter-btn:active .shutter-inner{background:#ffffffb3}.camera-hint{text-align:center;color:#555;background:#000;padding:0 0 28px;font-size:11px}.camera-error-overlay{text-align:center;justify-content:center;align-items:center;padding:40px;display:flex;position:absolute;inset:0}.camera-error-overlay p{color:#888;font-size:14px;line-height:1.7}.cam-alert{-webkit-backdrop-filter:blur(12px);white-space:nowrap;border-radius:16px;align-items:center;gap:12px;padding:12px 20px;animation:.3s camAlertIn;display:flex;position:absolute;bottom:52px;left:50%;transform:translate(-50%)}@keyframes camAlertIn{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.cam-alert--dark{color:#fbbf24;background:#fbbf242e;border:1px solid #fbbf2459}.cam-alert--frame{color:#f87171;background:#f871712e;border:1px solid #f8717159}.cam-alert-title{font-size:13px;font-weight:600;line-height:1.3}.cam-alert-sub{opacity:.8;margin-top:2px;font-size:11px}.status-warn{color:#fbbf24;align-items:center;gap:6px;font-size:13px;display:flex}.preview-page{background:var(--black);flex-direction:column;flex:1;min-height:100dvh;display:flex;position:relative}.preview-header{padding:72px 28px 20px}.preview-title{font-family:var(--serif);color:#fff;margin-bottom:4px;font-size:26px;font-weight:700}.preview-subtitle{color:#666;font-size:13px}.preview-image-container{flex-direction:column;flex:1;gap:12px;padding:0 28px;display:flex}.preview-image-wrap{aspect-ratio:4/3;background:#111;border-radius:20px;position:relative;overflow:hidden}.preview-image{object-fit:cover;width:100%;height:100%;display:block}.preview-scan-line{inset-x:0;background:linear-gradient(90deg, transparent, var(--opi-red), transparent);height:2px;animation:1.6s ease-in-out scan;position:absolute}@keyframes scan{0%{opacity:0;top:0%}5%{opacity:1}95%{opacity:1}to{opacity:0;top:100%}}.nail-box{opacity:0;border:2px solid #4ade80;border-radius:4px;width:32px;height:20px;animation:.25s forwards nailPop;position:absolute;transform:translate(-50%,-50%)}@keyframes nailPop{to{opacity:1}}.nail-box-label{color:#4ade80;white-space:nowrap;font-size:8px;position:absolute;bottom:-16px;left:50%;transform:translate(-50%)}.img-corner{border:0 solid #ffffff80;width:18px;height:18px;position:absolute}.img-corner-tl{border-top-width:2px;border-left-width:2px;border-radius:3px 0 0;top:8px;left:8px}.img-corner-tr{border-top-width:2px;border-right-width:2px;border-radius:0 3px 0 0;top:8px;right:8px}.img-corner-bl{border-bottom-width:2px;border-left-width:2px;border-radius:0 0 0 3px;bottom:8px;left:8px}.img-corner-br{border-bottom-width:2px;border-right-width:2px;border-radius:0 0 3px;bottom:8px;right:8px}.detection-status{border-radius:100px;align-self:flex-start;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:500;transition:all .3s;display:flex}.status-active{color:#aaa;background:#ffffff0f}.status-complete{color:#4ade80;background:#4ade801a;border:1px solid #4ade8040}.preview-chips{flex-wrap:wrap;gap:8px;padding:0 28px;animation:.4s forwards fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.info-chip{color:#aaa;background:#ffffff12;border:1px solid #ffffff1f;border-radius:100px;padding:5px 12px;font-size:11px}.preview-actions{flex-direction:column;align-items:center;gap:12px;padding:24px 28px 44px;display:flex}.analyzing-page{background:var(--black);flex-direction:column;flex:1;min-height:100dvh;display:flex}.analyzing-header{justify-content:space-between;align-items:center;padding:52px 28px 0;display:flex}.analyzing-pct-badge{color:#ffffff59;letter-spacing:1px;font-size:12px}.analyzing-orb-section{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;padding:0 28px;display:flex}.analyzing-orb{border-radius:50%;width:160px;height:160px;animation:2.8s ease-in-out infinite orbPulse;position:relative;box-shadow:0 0 60px #c4003b66,0 0 120px #c4003b29,0 20px 60px #00000080}.analyzing-orb:before{content:"";background:conic-gradient(#c4003b 0%,#7a0025 20%,#c85880 40%,#e8a0b8 55%,#9a1040 70%,#c4003b 100%);border-radius:50%;animation:6s linear infinite orbSpin;position:absolute;inset:0}.analyzing-orb:after{content:"";z-index:2;pointer-events:none;background:radial-gradient(#ffffff80 0%,#0000 100%);border-radius:50%;width:30%;height:24%;position:absolute;top:15%;left:18%}.analyzing-orb-inner{z-index:1;background:radial-gradient(circle at 40% 38%,#780a28e6 0%,#3c0514f2 60%,#140208 100%);border-radius:50%;position:absolute;inset:14px}@keyframes orbSpin{to{transform:rotate(360deg)}}@keyframes orbPulse{0%,to{transform:scale(1);box-shadow:0 0 60px #c4003b66,0 0 120px #c4003b29,0 20px 60px #00000080}50%{transform:scale(1.06);box-shadow:0 0 80px #c4003b8c,0 0 160px #c4003b38,0 20px 60px #00000080}}.analyzing-label{font-family:var(--serif);color:#ffffffbf;text-align:center;font-size:18px;font-style:italic}.analyzing-label-sub{color:#ffffff4d;text-align:center;letter-spacing:.3px;margin-top:-20px;font-size:12px}.progress-bar{background:#ffffff1a;border-radius:100px;width:120px;height:2px;overflow:hidden}.progress-fill{background:var(--opi-red);border-radius:100px;height:100%;transition:width .55s}.analyzing-steps-section{padding:0 28px 52px}.analyzing-steps{flex-direction:column;gap:0;list-style:none;display:flex}.step-item{border-bottom:1px solid #ffffff0d;align-items:flex-start;gap:14px;padding:14px 0;transition:opacity .3s;display:flex}.step-item:last-child{border-bottom:none}.step-item:not(.done):not(.active){opacity:.3}.step-dot{border:1.5px solid #ffffff26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:0;transition:all .3s;display:flex}.step-item.done .step-dot{border-color:var(--opi-red);background:var(--opi-red);color:#fff}.step-item.active .step-dot{border-color:#ffffff80}.step-spinner{border:1.5px solid #0000;border-top-color:#fff;border-radius:50%;width:10px;height:10px;animation:.7s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.step-text{flex-direction:column;flex:1;gap:3px;display:flex}.step-label{color:#ffffff4d;font-size:13px;font-weight:500;transition:color .3s}.step-item.done .step-label{color:#fff6}.step-item.active .step-label{color:#ffffffe6}.step-detail{color:#ffffff4d;font-size:11px}.results-page{background:var(--cream);flex-direction:column;flex:1;min-height:100dvh;display:flex}.results-header{justify-content:space-between;align-items:center;padding:52px 28px 20px;display:flex}.retry-link{color:#aaa;letter-spacing:.3px;text-underline-offset:3px;font-size:12px;transition:color .2s}.retry-link:hover{color:var(--black)}.skin-tone-section{text-align:center;border-bottom:1px solid #ede7df;flex-direction:column;align-items:center;padding:20px 28px 36px;display:flex}.skin-tone-eyebrow{letter-spacing:2.5px;text-transform:uppercase;color:#b0a89e;margin-bottom:24px;font-size:9px}.skin-tone-orb{border-radius:50%;width:110px;height:110px;margin-bottom:22px;animation:.7s cubic-bezier(.34,1.56,.64,1) forwards orbReveal;position:relative;overflow:hidden;box-shadow:0 12px 48px #0000002e,0 4px 16px #0000001a,inset 0 -10px 24px #00000024,inset 0 8px 20px #ffffff52}.skin-tone-orb:after{content:"";pointer-events:none;background:radial-gradient(#fff9 0%,#0000 100%);border-radius:50%;width:30%;height:24%;position:absolute;top:14%;left:20%}@keyframes orbReveal{0%{opacity:0;transform:scale(.65)}to{opacity:1;transform:scale(1)}}.skin-tone-name{font-family:var(--serif);color:var(--black);margin-bottom:8px;font-size:28px;font-style:italic;font-weight:700;line-height:1.15}.skin-tone-name em{color:var(--opi-red);font-style:italic}.skin-tone-sub{color:#9e9890;margin-bottom:20px;font-size:13px;line-height:1.6}.tone-chips-row{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.tone-chip{color:var(--black);background:#fff;border:1px solid #ddd8d0;border-radius:100px;padding:5px 13px;font-size:12px;font-weight:500}.mood-chip{background:var(--black);color:#fff;border-radius:100px;padding:5px 13px;font-size:12px}.pools-section{padding:36px 28px 0}.pools-section-header{margin-bottom:28px}.pools-title{font-family:var(--display);letter-spacing:2px;color:var(--black);text-transform:uppercase;margin-bottom:4px;font-size:32px;font-weight:400}.pools-sub{color:#b0a89e;font-size:12px}.color-pools-grid{grid-template-columns:1fr 1fr;gap:32px 16px;display:grid}.color-pool-item{opacity:0;flex-direction:column;align-items:center;gap:12px;animation:.5s forwards poolIn;display:flex;transform:translateY(16px)}@keyframes poolIn{to{opacity:1;transform:translateY(0)}}.color-pool{cursor:pointer;border-radius:50%;width:130px;height:130px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden;box-shadow:0 10px 40px #0000002e,0 3px 10px #0000001a,inset 0 -10px 24px #00000029,inset 0 6px 18px #ffffff47}.color-pool:after{content:"";pointer-events:none;background:radial-gradient(#ffffff8c 0%,#ffffff1a 70%,#0000 100%);border-radius:50%;width:33%;height:27%;position:absolute;top:13%;left:18%}.color-pool:hover{transform:scale(1.04);box-shadow:0 16px 56px #00000038,0 4px 14px #0000001f,inset 0 -10px 24px #00000029,inset 0 6px 18px #ffffff47}.color-pool:active{transform:scale(.97)}.color-pool-name{font-family:var(--serif);color:var(--black);text-align:center;font-size:14px;font-style:italic;font-weight:600;line-height:1.2}.color-pool-code{color:var(--opi-red);letter-spacing:.5px;margin-top:-4px;font-family:monospace;font-size:10px;font-weight:700}.color-pool-desc{color:#b0a89e;text-align:center;max-width:110px;font-size:11px;line-height:1.45}.shop-section{padding:40px 28px 0}.shop-section-title{letter-spacing:2px;text-transform:uppercase;color:#b0a89e;margin-bottom:16px;font-size:10px}.shop-cards{flex-direction:column;gap:10px;display:flex}.shop-card{opacity:0;background:#fff;border-radius:18px;animation:.4s forwards cardIn;display:flex;overflow:hidden;transform:translateY(8px);box-shadow:0 2px 12px #0000000d}@keyframes cardIn{to{opacity:1;transform:translateY(0)}}.shop-card-swatch{flex-shrink:0;align-self:stretch;width:80px;position:relative}.shop-card-swatch-img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.shop-card-body{flex-direction:column;flex:1;gap:5px;min-width:0;padding:14px 16px;display:flex}.shop-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.shop-card-name{color:var(--black);font-size:13px;font-weight:700;line-height:1.2}.shop-card-collection{color:#b0a89e;font-size:10px}.shop-card-code{color:var(--opi-red);font-family:monospace;font-size:10px;font-weight:700}.shop-card-reason{color:#888;font-size:11px;line-height:1.6}.shop-card-footer{justify-content:space-between;align-items:center;margin-top:4px;display:flex}.shop-card-moods{gap:4px;display:flex}.shop-card-mood-tag{color:#999;background:#f5f0ea;border-radius:100px;padding:3px 8px;font-size:10px}.line-tag{letter-spacing:.3px;white-space:nowrap;border-radius:100px;flex-shrink:0;align-self:flex-start;padding:2px 7px;font-size:9px;font-weight:600}.line-tag--nl{color:#888;background:#f0ede8}.line-tag--is{color:#ddd;background:#1a1a1a}.line-tag--ns{color:#2e7d32;background:#e8f5e9}.shop-btn{background:var(--black);color:#fff;letter-spacing:1.8px;border-radius:100px;flex-shrink:0;padding:6px 16px;font-size:10px;font-weight:700;text-decoration:none;transition:background .2s,transform .15s}.shop-btn:hover{background:#333}.shop-btn:active{transform:scale(.96)}.consult-banner{padding:40px 28px 52px}.consult-banner-inner{background:var(--black);border-radius:24px;flex-direction:column;gap:20px;padding:28px;display:flex;position:relative;overflow:hidden}.consult-banner-inner:before{content:"";pointer-events:none;background:radial-gradient(circle at 85% 15%,#c4003b2e 0%,#0000 55%);position:absolute;inset:0}.consult-banner-eyebrow{letter-spacing:2px;text-transform:uppercase;color:#ffffff4d;margin-bottom:4px;font-size:9px}.consult-banner-title{font-family:var(--serif);color:#fff;margin-bottom:8px;font-size:24px;font-style:italic;font-weight:700}.consult-banner-desc{color:#ffffff73;font-size:13px;line-height:1.7}.btn-consult{background:var(--opi-red);color:#fff;letter-spacing:.3px;border-radius:100px;justify-content:center;align-self:flex-start;align-items:center;padding:14px 28px;font-size:13px;font-weight:600;transition:background .2s,transform .15s;display:inline-flex}.btn-consult:hover{background:var(--opi-red-h)}.btn-consult:active{transform:scale(.97)}.consulting-page{background:var(--cream);flex-direction:column;flex:1;min-height:100dvh;display:flex;position:relative}.consulting-header{border-bottom:1px solid #ede7df;padding:64px 28px 28px}.consulting-title{font-family:var(--display);letter-spacing:2px;text-transform:uppercase;color:var(--black);margin:10px 0 4px;font-size:38px;font-weight:400}.consulting-subtitle{color:var(--gray);font-size:12px}.consulting-idle{text-align:center;flex-direction:column;flex:1;align-items:center;gap:0;padding:40px 28px 48px;display:flex}.idle-icon{margin-bottom:20px;font-size:48px}.idle-text{color:#666;margin-bottom:28px;font-size:15px;line-height:1.75}.idle-features{text-align:left;background:#fff;border-radius:16px;flex-direction:column;align-self:stretch;gap:10px;margin-bottom:36px;padding:20px 22px;list-style:none;display:flex}.idle-features li{color:#444;font-size:13px;line-height:1.5}.consulting-loading{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;padding:40px;display:flex}.loading-rings{width:64px;height:64px;position:relative}.loading-rings span{border:2px solid #0000;border-radius:50%;position:absolute;inset:0}.loading-rings span:first-child{border-top-color:var(--opi-red);animation:1.2s linear infinite spin}.loading-rings span:nth-child(2){border-top-color:#c4003b66;animation:1.8s linear infinite reverse spin;inset:8px}.loading-rings span:nth-child(3){border-top-color:#c4003b26;animation:2.4s linear infinite spin;inset:16px}.loading-text{color:var(--black);font-size:16px;font-weight:500}.loading-sub{color:var(--gray);text-align:center;font-size:12px}.consulting-error{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;padding:40px;display:flex}.error-text{color:#c00;text-align:center;font-size:14px;line-height:1.6}.btn-outline-dark{border:1.5px solid var(--black);color:var(--black);border-radius:100px;padding:12px 24px;font-size:14px;font-weight:500;transition:background .2s}.btn-outline-dark:hover{background:#0000000f}.report-wrap{flex-direction:column;flex:1;display:flex}.report-section{background:var(--cream);padding:24px 28px 0}.report-last-section{padding-bottom:56px}.report-hero-section{border-bottom:1px solid #ede7df;padding-top:28px;padding-bottom:24px}.report-tag{letter-spacing:1.5px;text-transform:uppercase;color:var(--opi-red);margin-bottom:8px;font-size:10px;display:inline-block}.report-type{font-family:var(--display);letter-spacing:2px;text-transform:uppercase;color:var(--black);margin-bottom:12px;font-size:34px;font-weight:400;line-height:1.1}.report-analysis{color:#666;font-size:13px;line-height:1.8}.section-title{letter-spacing:1.5px;color:var(--black);text-transform:uppercase;margin-bottom:14px;padding-top:24px;font-size:11px;font-weight:700}.top-pick-card{background:#fff;border-radius:16px;gap:16px;padding:18px;display:flex;box-shadow:0 2px 12px #0000000f}.top-pick-swatch{border-radius:12px;flex-shrink:0;width:72px;height:72px;box-shadow:0 3px 12px #0000001f}.top-pick-info{flex:1}.top-pick-name{color:var(--black);margin-bottom:3px;font-size:15px;font-weight:700}.top-pick-hex{color:var(--gray);margin-bottom:8px;font-family:monospace;font-size:10px}.top-pick-reason{color:#666;font-size:12px;line-height:1.7}.rec-grid{flex-direction:column;gap:10px;display:flex}.rec-card{opacity:0;background:#fff;border-radius:14px;gap:14px;padding:14px;animation:.4s forwards cardIn;display:flex;transform:translateY(8px);box-shadow:0 1px 8px #0000000d}.rec-card:first-child{animation-delay:50ms}.rec-card:nth-child(2){animation-delay:.1s}.rec-card:nth-child(3){animation-delay:.15s}.rec-card:nth-child(4){animation-delay:.2s}.rec-card:nth-child(5){animation-delay:.25s}.rec-card:nth-child(6){animation-delay:.3s}.rec-swatch{border-radius:10px;flex-shrink:0;width:52px;height:52px;box-shadow:0 2px 8px #0000001a}.rec-info{flex:1}.rec-name{color:var(--black);margin-bottom:2px;font-size:13px;font-weight:600}.rec-hex{color:var(--gray);margin-bottom:2px;font-family:monospace;font-size:10px}.rec-season{color:var(--opi-red);margin-bottom:5px;font-size:10px;font-weight:500}.rec-reason{color:#666;margin-bottom:6px;font-size:12px;line-height:1.6}.rec-occasions{flex-wrap:wrap;gap:4px;display:flex}.occasion-chip{color:#666;background:#f0ede8;border-radius:100px;padding:2px 8px;font-size:10px}.seasonal-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.seasonal-card{background:#fff;border-radius:14px;padding:14px;box-shadow:0 1px 8px #0000000d}.seasonal-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.seasonal-label{color:var(--black);font-size:13px;font-weight:600}.seasonal-swatch{border-radius:50%;width:28px;height:28px;box-shadow:0 2px 6px #0000001f}.seasonal-name{color:var(--black);margin-bottom:3px;font-size:11px;font-weight:600;line-height:1.3}.seasonal-comment{color:#777;font-size:11px;line-height:1.5}.avoid-card{background:#fff5f7;border:1px solid #fcd4de;border-radius:14px;padding:18px}.avoid-category{color:#c00030;margin-bottom:6px;font-size:14px;font-weight:600}.avoid-reason{color:#666;margin-bottom:10px;font-size:13px;line-height:1.7}.avoid-examples{flex-wrap:wrap;gap:6px;display:flex}.avoid-chip{color:#c00030;background:#fce8ee;border-radius:100px;padding:4px 10px;font-size:11px}.expert-quote{background:var(--black);border-radius:18px;padding:22px;position:relative;overflow:hidden}.expert-quote:before{content:"\"";font-size:80px;font-family:var(--serif);color:#c4003b33;pointer-events:none;line-height:1;position:absolute;top:-10px;left:14px}.expert-quote p{color:#bbb;font-size:14px;line-height:1.85;position:relative}
