:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:2px}:focus:not(:focus-visible){outline:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}html{scroll-behavior:smooth}::selection{background:rgba(45,106,106,.18);color:var(--color-charcoal)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.nvc-toast-region{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.625rem;pointer-events:none;max-width:360px;width:calc(100vw - 3rem)}@media (max-width:640px){.nvc-toast-region{bottom:1rem;right:1rem;left:1rem;max-width:none;width:auto}}.nvc-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;background:var(--color-charcoal);color:#fff;border-radius:6px;border:1px solid rgba(255,255,255,.08);font-size:var(--font-size-small);line-height:1.5;transform:translateX(0);opacity:1;animation:toast-in .3s cubic-bezier(.34,1.56,.64,1) both}.nvc-toast.is-leaving{animation:toast-out .25s cubic-bezier(.4,0,1,1) both}.nvc-toast--success .nvc-toast__icon{color:#4ade80}.nvc-toast--error .nvc-toast__icon{color:#f87171}.nvc-toast--info .nvc-toast__icon{color:var(--color-gold)}.nvc-toast__icon{flex-shrink:0;width:18px;height:18px;margin-top:1px}.nvc-toast__body{flex:1 1;min-width:0}.nvc-toast__title{font-weight:600;margin-bottom:2px}.nvc-toast__desc{color:rgba(255,255,255,.7);font-size:var(--font-size-tiny)}.nvc-toast__close{flex-shrink:0;background:none;border:none;cursor:pointer;color:rgba(255,255,255,.5);padding:2px;display:flex;align-items:center;transition:color .15s}.nvc-toast__close:hover{color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateX(1rem) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translateX(0) scale(1)}to{opacity:0;transform:translateX(1rem) scale(.96)}}.skeleton{background:linear-gradient(90deg,var(--color-cream) 25%,var(--color-pearl) 50%,var(--color-cream) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{display:flex;flex-direction:column;gap:.75rem}.skeleton-card__image{aspect-ratio:1/1;width:100%}.skeleton-card__title{height:1.25rem;width:70%}.skeleton-card__subtitle{height:1rem;width:45%}.skeleton-card__price{height:1.1rem;width:30%}.step-progress{gap:0;margin-bottom:2rem}.step-progress,.step-progress__item{display:flex;align-items:center;position:relative}.step-progress__item{flex-direction:column;flex:1 1;z-index:1}.step-progress__item:not(:last-child):after{content:"";position:absolute;top:14px;left:50%;width:100%;height:2px;background:var(--color-pearl);z-index:0;transition:background .4s var(--ease-smooth)}.step-progress__item.is-done:not(:last-child):after{background:var(--color-accent)}.step-progress__dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--color-pearl);background:var(--color-surface);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:var(--color-stone);transition:all .3s var(--ease-smooth);position:relative;z-index:1}.step-progress__item.is-active .step-progress__dot{box-shadow:0 0 0 4px rgba(45,106,106,.15)}.step-progress__item.is-active .step-progress__dot,.step-progress__item.is-done .step-progress__dot{border-color:var(--color-accent);background:var(--color-accent);color:#fff}.step-progress__label{margin-top:.5rem;font-size:var(--font-size-tiny);font-weight:500;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-stone);text-align:center;white-space:nowrap}.step-progress__item.is-active .step-progress__label{color:var(--color-accent);font-weight:600}.pe-btn{position:relative;overflow:hidden}.pe-btn[data-loading=true]{pointer-events:none;opacity:.8}.pe-btn[data-loading=true]:after{content:"";position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:btn-spin .7s linear infinite}@keyframes btn-spin{to{transform:translateY(-50%) rotate(1turn)}}.pe-btn:before{content:"";position:absolute;inset:0;background:rgba(255,255,255,0);transition:background .4s}.pe-btn:active:before{background:rgba(255,255,255,.12);transition:none}.pe-btn:disabled,.pe-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.form-field{position:relative;margin-bottom:1rem}.form-field__input{width:100%;padding:1.375rem 1rem .5rem;border:1px solid var(--color-border);border-radius:4px;font-size:var(--font-size-base);font-family:var(--font-body);background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color .2s var(--ease-smooth);min-height:56px;box-sizing:border-box}.form-field__input:focus{border-color:var(--color-accent)}.form-field__input.has-error{border-color:var(--color-error)}.form-field__label{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:var(--font-size-base);color:var(--color-stone);pointer-events:none;transition:all .2s var(--ease-smooth);background:transparent}.form-field__input:focus+.form-field__label,.form-field__input:not(:placeholder-shown)+.form-field__label{top:.5rem;transform:translateY(0);font-size:var(--font-size-tiny);font-weight:600;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--color-accent)}.form-field__error{color:var(--color-error);display:flex;align-items:center;gap:.375rem}.form-field__error,.form-field__hint{font-size:var(--font-size-tiny);margin-top:.375rem}.form-field__hint{color:var(--color-stone)}.eyewear-card{transition:transform .4s cubic-bezier(.4,0,.2,1)}.eyewear-card:hover{transform:translateY(-3px)}.eyewear-card__quick-add{position:absolute;bottom:0;left:0;right:0;background:var(--color-accent);color:#fff;border:none;padding:.875rem;font-size:var(--font-size-small);font-weight:500;letter-spacing:var(--ls-wide);text-transform:uppercase;cursor:pointer;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}.eyewear-card:focus-within .eyewear-card__quick-add,.eyewear-card:hover .eyewear-card__quick-add{transform:translateY(0)}@media (max-width:768px){.eyewear-card__quick-add{transform:translateY(0)}}.sticky-atc{display:none}@media (max-width:768px){.sticky-atc{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--color-surface);border-top:1px solid var(--color-border);padding:.875rem 1rem calc(.875rem + env(safe-area-inset-bottom));gap:.75rem;transform:translateY(0);transition:transform .3s var(--ease-smooth)}.sticky-atc.is-hidden{transform:translateY(100%)}.sticky-atc__price{display:flex;flex-direction:column;justify-content:center;min-width:80px}.sticky-atc__price-label{font-size:var(--font-size-tiny);color:var(--color-stone);text-transform:uppercase;letter-spacing:var(--ls-wide)}.sticky-atc__price-value{font-family:var(--font-display);font-size:var(--font-size-large);color:var(--color-accent)}.sticky-atc__btn{flex:1 1}}.breadcrumb{flex-wrap:wrap;font-size:var(--font-size-tiny);color:var(--color-stone);margin-bottom:1.5rem;padding:.75rem 0;border-bottom:1px solid var(--color-border)}.breadcrumb,.breadcrumb__item{display:flex;align-items:center;gap:.375rem}.breadcrumb__link{color:var(--color-stone);text-decoration:none;transition:color .15s}.breadcrumb__link:hover{color:var(--color-accent)}.breadcrumb__separator{color:var(--color-pearl);font-size:.7rem}.breadcrumb__current{color:var(--color-text);font-weight:500}.pe-header__cart-count{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;background:var(--color-accent);color:#fff;font-size:.625rem;font-weight:700;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1;animation:badge-pop .25s cubic-bezier(.34,1.56,.64,1) both}@keyframes badge-pop{0%{transform:scale(0)}to{transform:scale(1)}}.page-enter{opacity:0;transform:translateY(8px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s var(--ease-smooth),transform .3s var(--ease-smooth)}.empty-state{flex-direction:column;padding:var(--space-3xl) var(--space-xl);text-align:center}.empty-state,.empty-state__icon{display:flex;align-items:center;justify-content:center}.empty-state__icon{width:72px;height:72px;background:var(--color-cream);border-radius:50%;margin-bottom:1.5rem;color:var(--color-stone)}.empty-state__title{font-family:var(--font-display);font-size:var(--font-size-h3);font-weight:400;color:var(--color-text);margin-bottom:.75rem}.empty-state__desc{font-size:var(--font-size-base);color:var(--color-stone);max-width:360px;line-height:1.7;margin-bottom:2rem}.alert{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;border-radius:4px;font-size:var(--font-size-small);line-height:1.6}.alert--info{background:rgba(45,106,106,.06);border:1px solid rgba(45,106,106,.2);color:var(--color-accent-dark)}.alert--success{background:rgba(74,124,89,.06);border:1px solid rgba(74,124,89,.2);color:#2f5c38}.alert--warning{background:rgba(196,165,116,.1);border:1px solid rgba(196,165,116,.3);color:#7a5b25}.alert--error{background:rgba(184,84,80,.06);border:1px solid rgba(184,84,80,.2);color:var(--color-error)}.alert__icon{flex-shrink:0;width:18px;height:18px;margin-top:1px}.rx-warning{background:linear-gradient(135deg,rgba(196,165,116,.08),rgba(45,106,106,.06));border:1px solid rgba(196,165,116,.3);border-radius:6px;padding:1.25rem;margin-bottom:1.5rem}.rx-warning__title{font-size:var(--font-size-small);font-weight:600;color:var(--color-gold);margin-bottom:.375rem}.rx-warning__body{font-size:var(--font-size-small);color:var(--color-text);line-height:1.6}.product-gallery__main{cursor:zoom-in;overflow:hidden}.product-gallery__main img{transition:transform .5s cubic-bezier(.4,0,.2,1)}.product-gallery__main:hover img{transform:scale(1.04)}.product-gallery__thumb{opacity:.6;border:2px solid transparent;border-radius:4px;transition:opacity .2s,border-color .2s;cursor:pointer;overflow:hidden}.product-gallery__thumb.is-active,.product-gallery__thumb:hover{opacity:1;border-color:var(--color-accent)}.checkout-progress{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-tiny);margin-bottom:2rem}.checkout-progress__step{color:var(--color-stone)}.checkout-progress__step.is-active{color:var(--color-accent);font-weight:600}.checkout-progress__step.is-done{color:var(--color-stone);text-decoration:line-through;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent)}.checkout-progress__sep{color:var(--color-pearl)}@media (max-width:768px){.cart-layout,.checkout-layout{grid-template-columns:1fr!important}.checkout-layout>:last-child{position:static!important}.product-layout{grid-template-columns:1fr!important}.container{padding-inline:1rem}}.reveal{opacity:0;transform:translateY(20px);transition:opacity .5s var(--ease-smooth),transform .5s var(--ease-smooth)}.reveal.is-visible{opacity:1;transform:none}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}img{transition:opacity .3s var(--ease-smooth)}img[data-loaded=false]{opacity:0}img[data-loaded=true]{opacity:1}.chip{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border-radius:999px;font-size:var(--font-size-tiny);font-weight:600;letter-spacing:var(--ls-wide);text-transform:uppercase;border:1px solid transparent}.chip--teal{background:rgba(45,106,106,.1);color:var(--color-accent);border-color:rgba(45,106,106,.2)}.chip--gold{background:rgba(196,165,116,.1);color:#8b6914;border-color:rgba(196,165,116,.3)}.chip--neutral{background:var(--color-cream);color:var(--color-stone);border-color:var(--color-pearl)}.divider-text{display:flex;align-items:center;gap:1rem;color:var(--color-stone);font-size:var(--font-size-tiny);text-transform:uppercase;letter-spacing:var(--ls-wider);margin-block:1.5rem}.divider-text:after,.divider-text:before{content:"";flex:1 1;height:1px;background:var(--color-border)}.pd-overlay{position:fixed;inset:0;z-index:9000;background:rgba(15,15,20,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1rem;animation:pd-fade-in .22s ease}@keyframes pd-fade-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.pd-modal{background:var(--color-bg,#faf9f7);border-radius:4px;border:1px solid var(--color-border);width:100%;max-width:480px;max-height:90dvh;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.pd-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem 1.5rem 0;flex-shrink:0}.pd-modal__title{font-family:var(--font-display);font-size:var(--font-size-large);font-weight:500;margin:0 0 .25rem;color:var(--color-text);line-height:1.3}.pd-modal__sub{font-size:var(--font-size-small);color:var(--color-stone);margin:0;line-height:1.5}.pd-modal__close{flex-shrink:0;width:32px;height:32px;border-radius:50%;border:1px solid var(--color-border);background:transparent;color:var(--color-stone);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;margin-top:2px}.pd-modal__close:hover{background:var(--color-surface);color:var(--color-text)}.pd-step{padding:1.25rem 1.5rem 1.5rem;display:flex;flex-direction:column}.pd-step--result{padding-bottom:1.75rem}.pd-step--error{align-items:center;padding-top:2rem}.pd-camera-wrap{position:relative;overflow:hidden;background:#111;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}.pd-camera-wrap,.pd-video{width:100%;border-radius:8px}.pd-video{display:block}.pd-canvas,.pd-video{position:absolute;inset:0;height:100%;object-fit:cover}.pd-canvas{width:100%;border-radius:8px;pointer-events:none}.pd-progress-wrap{width:100%;margin-top:1rem}.pd-progress-bar{width:100%;height:5px;background:var(--color-border);border-radius:3px;overflow:hidden}.pd-progress-fill{height:100%;background:var(--color-accent);border-radius:3px;transition:width .25s ease}.pd-instructions{display:flex;flex-direction:column;gap:.75rem}.pd-instruction-row{display:flex;align-items:flex-start;gap:.875rem}.pd-instruction-num{font-family:var(--font-display);font-size:.6875rem;letter-spacing:.08em;color:var(--color-accent);background:rgba(45,106,106,.08);border:1px solid rgba(45,106,106,.2);border-radius:4px;padding:.15rem .4rem;flex-shrink:0;margin-top:3px}.pd-instruction-title{font-size:var(--font-size-base);font-weight:500;color:var(--color-text);margin:0 0 .15rem}.pd-instruction-desc{font-size:var(--font-size-small);color:var(--color-stone);margin:0;line-height:1.5}.pd-privacy{display:flex;align-items:center;justify-content:center;gap:.375rem;font-size:var(--font-size-tiny);color:var(--color-stone);margin-top:.875rem;text-align:center}@media (max-width:520px){.pd-modal{border-radius:16px 16px 0 0;max-width:100%;position:fixed;bottom:0;left:0;right:0;max-height:92dvh}.pd-overlay{align-items:flex-end;padding:0}.pd-camera-wrap{aspect-ratio:3/4}}