/* =========================================================
   K2 GEMS & MINERALS — COMPILED STYLESHEET
   Part 1: Tailwind utility classes (compiled + purged from
   the actual site markup — not the CDN runtime compiler)
   Part 2: Custom design system (facets, hero, nav, etc.)
   Merged into one file on purpose: fewer HTTP requests,
   and one less file that can fail to load on a new host.
   ========================================================= */

*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-bottom-6{bottom:-1.5rem}.-right-4{right:-1rem}.bottom-8{bottom:2rem}.left-0{left:0}.right-0{right:0}.right-8{right:2rem}.top-1\/2{top:50%}.z-10{z-index:10}.order-1{order:1}.order-2{order:2}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-14{margin-bottom:3.5rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-\[4\/5\]{aspect-ratio:4/5}.aspect-square{aspect-ratio:1/1}.h-11{height:2.75rem}.h-12{height:3rem}.h-20{height:5rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-9{height:2.25rem}.h-full{height:100%}.w-12{width:3rem}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[1440px\]{max-width:1440px}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scroll-mt-32{scroll-margin-top:8rem}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-14{gap:3.5rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.border{border-width:1px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-t{border-top-width:1px}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-10{padding:2.5rem}.p-5{padding:1.25rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.\!px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.\!py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-14{padding-bottom:3.5rem}.pb-28{padding-bottom:7rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pt-1{padding-top:.25rem}.pt-14{padding-top:3.5rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-4{padding-top:1rem}.pt-7{padding-top:1.75rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.leading-\[1\.05\]{line-height:1.05}.leading-\[1\.15\]{line-height:1.15}.leading-\[1\.1\]{line-height:1.1}.leading-\[1\.2\]{line-height:1.2}.leading-\[1\.4\]{line-height:1.4}.leading-\[1\.5\]{line-height:1.5}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-widest{letter-spacing:.1em}.opacity-25{opacity:.25}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.invert{--tw-invert:invert(100%)}.filter,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-700{transition-duration:.7s}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.group:hover .group-hover\:translate-x-1{--tw-translate-x:0.25rem}.group:hover .group-hover\:scale-110,.group:hover .group-hover\:translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}@media (min-width:640px){.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.md\:-right-8{right:-2rem}.md\:mt-8{margin-top:2rem}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:justify-start{justify-content:flex-start}.md\:gap-10{gap:2.5rem}.md\:gap-5{gap:1.25rem}.md\:gap-6{gap:1.5rem}.md\:p-16{padding:4rem}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:py-28{padding-top:7rem;padding-bottom:7rem}.md\:py-32{padding-top:8rem}.md\:pb-32,.md\:py-32{padding-bottom:8rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:1024px){.lg\:right-14{right:3.5rem}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-\[0\.8fr_1\.2fr\]{grid-template-columns:.8fr 1.2fr}.lg\:grid-cols-\[1\.1fr_0\.9fr\]{grid-template-columns:1.1fr .9fr}.lg\:grid-cols-\[1\.3fr_1fr_1fr_1\.2fr\]{grid-template-columns:1.3fr 1fr 1fr 1.2fr}.lg\:grid-cols-\[1fr_1\.2fr\]{grid-template-columns:1fr 1.2fr}.lg\:grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.lg\:gap-10{gap:2.5rem}.lg\:px-16{padding-left:4rem;padding-right:4rem}.lg\:text-7xl{font-size:4.5rem;line-height:1}}

/* =========================================================
   K2 GEMS & MINERALS — DESIGN SYSTEM
   Palette: obsidian black + engraved gold, faceted-cut geometry
   Display: Playfair Display / Labels: Cinzel / Body: Inter
   ========================================================= */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { overflow-x: hidden; width: 100%; max-width: 100%; margin: 0; padding: 0; }
img, video, iframe { max-width: 100%; height: auto; display: block; }

/* -------------------------------------------------
   Theme tokens
   Dark (default): obsidian black + engraved gold
   Light: warm ivory + natural gemstone green
   Variable NAMES stay the same across themes (--gold etc.)
   so every component below is theme-agnostic automatically.
   ------------------------------------------------- */
:root, :root[data-theme="dark"]{
    --obsidian:#08080a;
    --charcoal:#131316;
    --charcoal-raise:#1b1b1f;
    --charcoal-glass: rgba(19,19,22,0.72);
    --line: rgba(var(--gold-bright-rgb),0.16);
    --line-soft: rgba(242,237,228,0.09);
    --ivory:#f3eee4;
    --ivory-mute: rgba(243,238,228,0.64);
    --ivory-faint: rgba(243,238,228,0.38);
    --gold:#c9a227;
    --gold-bright:#eccd72;
    --gold-pale: #f0dfa4;
    --gold-deep:#8a6d1a;
    --emerald:#1f6f4a;
    --emerald-bright:#3fae7c;
    --ruby:#8c1f31;
    --ruby-bright:#c94258;
    --sapphire:#1b4a8c;
    --radius-soft: 2px;
    --ease: cubic-bezier(.22,.68,.32,1);
    --banner-on-accent: #100c02;
    --gold-rgb: 201,162,39;
    --gold-bright-rgb: 236,205,114;
    --bg-rgb: 8,8,10;
    --text-rgb: 243,238,228;
    --footer-bg: #050506;
}

:root[data-theme="light"]{
    --obsidian:#f6f3ec;
    --charcoal:#efebe0;
    --charcoal-raise:#e7e2d3;
    --charcoal-glass: rgba(246,243,236,0.78);
    --line: rgba(15,60,42,0.16);
    --line-soft: rgba(20,20,15,0.09);
    --ivory:#181712;
    --ivory-mute: rgba(24,23,18,0.66);
    --ivory-faint: rgba(24,23,18,0.44);
    --gold:#0f6e46;
    --gold-bright:#158a58;
    --gold-pale: #2fa36e;
    --gold-deep:#0b4e33;
    --emerald:#0f6e46;
    --emerald-bright:#158a58;
    --ruby:#8c1f31;
    --ruby-bright:#c94258;
    --sapphire:#1b4a8c;
    --radius-soft: 2px;
    --ease: cubic-bezier(.22,.68,.32,1);
    --banner-on-accent: #f6f3ec;
    --gold-rgb: 15,110,70;
    --gold-bright-rgb: 21,138,88;
    --bg-rgb: 246,243,236;
    --text-rgb: 24,23,18;
    --footer-bg: #efe9da;
}

body{
    background: var(--obsidian);
    color: var(--ivory);
    font-family: 'Inter', sans-serif;
    -webkit-font-smoothing: antialiased;
    opacity: 0;
    transition: background .4s ease, color .4s ease;
}
body.page-loaded{ opacity: 1; transition: opacity .7s ease; }

/* -------------------------------------------------
   "On photo" — sections whose background is a real
   photograph with a permanent dark scrim (hero slider,
   interior page banners, the closing CTA band). Text
   here always stays light-on-dark, regardless of the
   site theme toggle, because the scrim never changes —
   only the surrounding page chrome (header/footer/menus)
   should react to the theme switch.
   ------------------------------------------------- */
.on-photo{
    --ivory:#f3eee4; --ivory-mute: rgba(243,238,228,.64); --ivory-faint: rgba(243,238,228,.38);
    --gold:#c9a227; --gold-bright:#eccd72; --gold-pale:#f0dfa4; --gold-deep:#8a6d1a;
    --line: rgba(236,205,114,.16); --banner-on-accent:#100c02;
    --gold-rgb: 201,162,39; --gold-bright-rgb:236,205,114;
    color: var(--ivory);
}

/* -------------------------------------------------
   Logo swap: light-colored mark on dark theme,
   dark-colored mark on light theme
   ------------------------------------------------- */
[data-theme="dark"] .logo-light{ display: none; }
[data-theme="light"] .logo-dark{ display: none; }

.display{ font-family: 'Playfair Display', serif; }
.label{ font-family: 'Cinzel', serif; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }

.tx-mute{ color: var(--ivory-mute); }
.tx-faint{ color: var(--ivory-faint); }
.tx-gold{ color: var(--gold-bright); }
.bd-line{ border-color: var(--line); }
.bg-charcoal{ background: var(--charcoal); }
.bg-charcoal-raise{ background: var(--charcoal-raise); }

::selection{ background: var(--gold); color: var(--obsidian); }

/* -------------------------------------------------
   Background texture: faint facet / hex grid + grain
   ------------------------------------------------- */
.grain-overlay{
    position: fixed; inset: 0; pointer-events: none; z-index: 999; opacity: .045; mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.facet-field{
    position: absolute; inset: 0; pointer-events: none; opacity: .5;
    background-image:
        linear-gradient(135deg, transparent 48%, rgba(var(--gold-rgb),.06) 49%, rgba(var(--gold-rgb),.06) 51%, transparent 52%),
        linear-gradient(45deg, transparent 48%, rgba(var(--gold-rgb),.045) 49%, rgba(var(--gold-rgb),.045) 51%, transparent 52%);
    background-size: 90px 90px, 90px 90px;
}

/* -------------------------------------------------
   Signature shape: faceted (gem-cut) corners
   Used on cards, images, panels, buttons
   ------------------------------------------------- */
.facet{
    clip-path: polygon(24px 0, 100% 0, 100% calc(100% - 24px), calc(100% - 24px) 100%, 0 100%, 0 24px);
}
.facet-sm{
    clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px);
}
.facet-lg{
    clip-path: polygon(44px 0, 100% 0, 100% calc(100% - 44px), calc(100% - 44px) 100%, 0 100%, 0 44px);
}
.facet-border{
    position: relative;
}
.facet-border::before{
    content:''; position: absolute; inset: 0; padding: 1px;
    clip-path: polygon(24px 0, 100% 0, 100% calc(100% - 24px), calc(100% - 24px) 100%, 0 100%, 0 24px);
    background: linear-gradient(135deg, rgba(var(--gold-bright-rgb),.55), rgba(var(--gold-bright-rgb),0) 40%, rgba(var(--gold-bright-rgb),0) 60%, rgba(var(--gold-bright-rgb),.35));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
    pointer-events: none;
}

/* -------------------------------------------------
   Buttons
   ------------------------------------------------- */
.btn{
    display: inline-flex; align-items: center; justify-content: center; gap: .5em;
    font-family: 'Inter', sans-serif; font-weight: 600; font-size: .92rem;
    letter-spacing: .02em; padding: 1rem 2rem; position: relative; overflow: hidden;
    transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), color .25s var(--ease);
    cursor: pointer; border: 1px solid transparent; white-space: nowrap;
}
.btn-gold{
    background: linear-gradient(120deg, var(--gold-deep), var(--gold) 40%, var(--gold-bright) 70%, var(--gold));
    color: var(--banner-on-accent);
}
.btn-gold::after{
    content:''; position: absolute; inset: 0; opacity: 0;
    background: linear-gradient(115deg, transparent 30%, rgba(255,255,255,.65) 48%, transparent 66%);
    transform: translateX(-120%);
    transition: transform .8s ease, opacity .2s ease;
}
.btn-gold:hover::after{ transform: translateX(120%); opacity: 1; }
.btn-gold:hover{ transform: translateY(-2px); box-shadow: 0 10px 30px rgba(var(--gold-rgb),.25); }

.btn-outline{
    border-color: var(--line); color: var(--ivory); background: transparent;
}
.btn-outline:hover{ background: var(--line-soft); border-color: var(--gold); transform: translateY(-2px); }

.btn-ghost-gold{
    color: var(--gold-bright); border-color: rgba(var(--gold-rgb),.4); background: rgba(var(--gold-rgb),.05);
}
.btn-ghost-gold:hover{ background: rgba(var(--gold-rgb),.12); transform: translateY(-2px); }

/* -------------------------------------------------
   Theme toggle (light/dark)
   ------------------------------------------------- */
.theme-toggle{
    width: 50px; height: 27px; border-radius: 2px; background: var(--charcoal); border: 1px solid var(--line);
    position: relative; cursor: pointer; flex-shrink: 0; padding: 0; transition: border-color .2s ease, background .2s ease;
}
.theme-toggle:hover{ border-color: var(--gold); }
.theme-toggle-dot{
    position: absolute; top: 2px; left: 2px; width: 21px; height: 21px;
    background: var(--gold); display: flex; align-items: center; justify-content: center; color: var(--banner-on-accent);
    transition: transform .3s var(--ease), background .3s ease;
}
[data-theme="light"] .theme-toggle-dot{ transform: translateX(23px); }
.theme-toggle-dot svg{ width: 12px; height: 12px; }
.theme-toggle .icon-sun{ display: none; }
.theme-toggle .icon-moon{ display: block; }
[data-theme="light"] .theme-toggle .icon-sun{ display: block; }
[data-theme="light"] .theme-toggle .icon-moon{ display: none; }

/* -------------------------------------------------
   Header / nav
   ------------------------------------------------- */
.site-header{
    position: fixed; top: 0; left: 0; right: 0; z-index: 100;
    background: linear-gradient(to bottom, rgba(var(--bg-rgb),.92), rgba(var(--bg-rgb),.55) 80%, transparent);
    backdrop-filter: blur(6px);
    transition: background .3s ease, border-color .3s ease;
    border-bottom: 1px solid transparent;
}
.site-header.scrolled{
    background: rgba(var(--bg-rgb),.92); border-bottom: 1px solid var(--line);
}
.logo-mark{ height: 60px; width: auto; }
.nav-link{
    position: relative; color: var(--ivory-mute); font-size: .84rem; letter-spacing: .1em; text-transform: uppercase;
    padding-bottom: 4px; transition: color .2s ease;
}
.nav-link::after{
    content:''; position: absolute; left: 0; bottom: 0; height: 1px; width: 0; background: var(--gold-bright);
    transition: width .3s var(--ease);
}
.nav-link:hover, .nav-link.active{ color: var(--ivory); }
.nav-link:hover::after, .nav-link.active::after{ width: 100%; }

/* Hamburger button */
.hamburger{
    width: 46px; height: 46px; display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--line); background: rgba(var(--text-rgb),.03); cursor: pointer; position: relative; z-index: 210;
    flex-shrink: 0; transition: border-color .2s ease, background .2s ease;
}
.hamburger:hover{ border-color: var(--gold); background: rgba(var(--gold-rgb),.08); }
.hamburger .bars{ position: relative; width: 20px; height: 14px; }
.hamburger .bars span{
    position: absolute; left: 0; width: 100%; height: 1.5px; background: var(--gold-bright);
    transition: transform .35s var(--ease), opacity .25s ease, top .35s var(--ease);
}
.hamburger .bars span:nth-child(1){ top: 0; }
.hamburger .bars span:nth-child(2){ top: 6px; }
.hamburger .bars span:nth-child(3){ top: 12px; }
.hamburger.open .bars span:nth-child(1){ top: 6px; transform: rotate(45deg); }
.hamburger.open .bars span:nth-child(2){ opacity: 0; }
.hamburger.open .bars span:nth-child(3){ top: 6px; transform: rotate(-45deg); }

/* Slide-in nav panel */
.nav-panel{
    position: fixed; inset: 0; z-index: 200; visibility: hidden; pointer-events: none;
}
.nav-panel.open{ visibility: visible; pointer-events: auto; }
.nav-panel-backdrop{
    position: absolute; inset: 0; background: rgba(4,4,5,.7); opacity: 0; transition: opacity .4s ease;
}
.nav-panel.open .nav-panel-backdrop{ opacity: 1; }
.nav-panel-sheet{
    position: absolute; top: 0; right: 0; bottom: 0; width: min(440px, 92vw);
    background: linear-gradient(155deg, var(--charcoal-raise), var(--obsidian) 70%);
    border-left: 1px solid var(--line);
    padding: 2.5rem 2.25rem;
    display: flex; flex-direction: column;
    transform: translateX(100%); transition: transform .55s var(--ease), background .3s ease;
    overflow-y: auto;
}
.nav-panel.open .nav-panel-sheet{ transform: translateX(0); }
.nav-panel-link{
    display: block; font-family: 'Playfair Display', serif; font-size: 2rem; line-height: 1.3;
    color: var(--ivory); padding: .3rem 0; opacity: 0; transform: translateX(24px);
    transition: opacity .5s var(--ease), transform .5s var(--ease), color .2s ease;
    border-bottom: 1px solid transparent;
}
.nav-panel.open .nav-panel-link{ opacity: 1; transform: translateX(0); }
.nav-panel-link:hover{ color: var(--gold-bright); }
.nav-panel-link .num{ font-family: 'Inter', sans-serif; font-size: .7rem; color: var(--gold); letter-spacing: .1em; margin-right: .6rem; vertical-align: middle; }
.nav-panel-link.active{ color: var(--gold-bright); }

/* -------------------------------------------------
   Utility sections
   ------------------------------------------------- */
.eyebrow{
    display: inline-flex; align-items: center; gap: .6rem; color: var(--gold-bright);
    font-family: 'Cinzel', serif; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase;
}
.eyebrow::before{ content:''; width: 26px; height: 1px; background: var(--gold); display: inline-block; }

.divider-gold{ height: 1px; background: linear-gradient(90deg, var(--gold), transparent); width: 80px; }

.card{
    background: var(--charcoal); border: 1px solid var(--line-soft);
    transition: border-color .3s ease, transform .3s ease, box-shadow .3s ease;
}
.card:hover{ border-color: var(--line); transform: translateY(-4px); box-shadow: 0 20px 40px rgba(0,0,0,.35); }

.stat-num{ font-family: 'Playfair Display', serif; font-weight: 700; }

.reveal{ opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity: 1; transform: translateY(0); }
.reveal-delay-1.in{ transition-delay: .1s; }
.reveal-delay-2.in{ transition-delay: .2s; }
.reveal-delay-3.in{ transition-delay: .3s; }
.reveal-delay-4.in{ transition-delay: .4s; }

.hero-char{ display: inline-block; opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.hero-char.in{ opacity: 1; transform: translateY(0); }

/* -------------------------------------------------
   Hero slider (home page)
   ------------------------------------------------- */
.hero-slider{ position: relative; height: 100svh; min-height: 620px; width: 100%; overflow: hidden; background: var(--obsidian); }
.hero-slide{
    position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.4s ease;
}
.hero-slide.active{ opacity: 1; visibility: visible; z-index: 2; }
.hero-slide img{
    width: 100%; height: 100%; object-fit: cover; object-position: center;
    transform: scale(1.08); transition: transform 8s linear;
}
.hero-slide.active img{ transform: scale(1); }
.hero-slide::after{
    content:''; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(4,4,5,.32) 0%, rgba(4,4,5,.16) 35%, rgba(4,4,5,.72) 100%),
                linear-gradient(90deg, rgba(4,4,5,.52) 0%, rgba(4,4,5,.08) 55%);
}
.hero-copy{ position: absolute; inset: 0; z-index: 5; }
.hero-slide-headline, .hero-slide-sub{ opacity: 0; transform: translateY(18px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.hero-slide.active .hero-slide-headline{ opacity: 1; transform: translateY(0); transition-delay: .35s; }
.hero-slide.active .hero-slide-sub{ opacity: 1; transform: translateY(0); transition-delay: .5s; }

.hero-dots{ display: flex; gap: .6rem; }
.hero-dot{
    width: 34px; height: 2px; background: rgba(243,238,228,.28); position: relative; cursor: pointer; overflow: hidden;
}
.hero-dot .fill{ position: absolute; inset: 0; background: var(--gold-bright); width: 0%; }
.hero-dot.active .fill{ width: 100%; transition: width 6s linear; }

.hero-arrow{
    width: 50px; height: 50px; border: 1px solid rgba(243,238,228,.25); display: flex; align-items: center; justify-content: center;
    color: var(--ivory); cursor: pointer; transition: border-color .2s ease, background .2s ease;
}
.hero-arrow:hover{ border-color: var(--gold); background: rgba(var(--gold-rgb),.1); }

.scroll-cue{
    display: flex; flex-direction: column; align-items: center; gap: .5rem; color: var(--ivory-faint);
}
.scroll-cue .line{ width: 1px; height: 34px; background: linear-gradient(to bottom, var(--gold-bright), transparent); animation: scrollcue 1.8s ease-in-out infinite; }
@keyframes scrollcue{ 0%{ transform: scaleY(0); transform-origin: top;} 50%{ transform: scaleY(1); transform-origin: top;} 51%{ transform-origin: bottom;} 100%{ transform: scaleY(0); transform-origin: bottom;} }

/* -------------------------------------------------
   Page banner (interior pages)
   ------------------------------------------------- */
.page-banner{ position: relative; padding-top: 11rem; padding-bottom: 5rem; overflow: hidden; }
.page-banner .bg{ position: absolute; inset: 0; }
.page-banner .bg img{ width: 100%; height: 100%; object-fit: cover; opacity: .4; }
.page-banner .bg::after{ content:''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,8,10,.28), var(--obsidian) 92%); }

/* -------------------------------------------------
   Filter pills
   ------------------------------------------------- */
.pill{
    padding: .55rem 1.3rem; font-size: .8rem; letter-spacing: .06em; border: 1px solid var(--line-soft);
    color: var(--ivory-mute); cursor: pointer; transition: all .25s ease; white-space: nowrap; background: transparent;
}
.pill:hover{ border-color: var(--gold); color: var(--ivory); }
.pill.active{ background: var(--gold); color: var(--obsidian); border-color: var(--gold); font-weight: 600; }

/* -------------------------------------------------
   Gallery / lightbox
   ------------------------------------------------- */
.gallery-item{ position: relative; overflow: hidden; cursor: zoom-in; background: var(--charcoal); }
.gallery-item img{ width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.gallery-item:hover img{ transform: scale(1.08); }
.gallery-item .tag{
    position: absolute; left: 12px; bottom: 12px; z-index: 2; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase;
    background: rgba(8,8,10,.72); border: 1px solid var(--line); padding: .3rem .7rem; color: var(--gold-bright);
    opacity: 0; transform: translateY(6px); transition: opacity .3s ease, transform .3s ease;
}
.gallery-item:hover .tag{ opacity: 1; transform: translateY(0); }
.gallery-item::before{
    content:''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, transparent 55%, rgba(4,4,5,.75) 100%);
}

.lightbox{
    position: fixed; inset: 0; z-index: 300; background: rgba(4,4,5,.94); display: flex; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden; transition: opacity .35s ease; padding: 2rem;
}
.lightbox.open{ opacity: 1; visibility: visible; }
.lightbox img{ max-width: min(900px, 92vw); max-height: 84vh; object-fit: contain; border: 1px solid var(--line); }
.lightbox-close, .lightbox-nav{
    position: absolute; color: var(--ivory); border: 1px solid var(--line); width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; cursor: pointer; background: rgba(19,19,22,.6);
}
.lightbox-close{ top: 24px; right: 24px; }
.lightbox-nav.prev{ left: 24px; top: 50%; transform: translateY(-50%); }
.lightbox-nav.next{ right: 24px; top: 50%; transform: translateY(-50%); }
.lightbox-cap{ position: absolute; bottom: 28px; left: 0; right: 0; text-align: center; color: var(--ivory-mute); font-size: .85rem; letter-spacing: .06em; }

/* -------------------------------------------------
   Accordion (FAQ)
   ------------------------------------------------- */
.acc-item{ border-bottom: 1px solid var(--line-soft); }
.acc-trigger{
    width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: 1.6rem 0; text-align: left; background: transparent; border: 0; color: var(--ivory); cursor: pointer;
    font-family: 'Playfair Display', serif; font-size: 1.15rem;
}
.acc-icon{ width: 22px; height: 22px; position: relative; flex-shrink: 0; }
.acc-icon::before, .acc-icon::after{ content:''; position: absolute; background: var(--gold-bright); transition: transform .3s ease; }
.acc-icon::before{ top: 50%; left: 0; width: 100%; height: 1.5px; transform: translateY(-50%); }
.acc-icon::after{ left: 50%; top: 0; height: 100%; width: 1.5px; transform: translateX(-50%); }
.acc-item.open .acc-icon::after{ transform: translateX(-50%) rotate(90deg); opacity: 0; }
.acc-panel{ max-height: 0; overflow: hidden; transition: max-height .4s var(--ease); }
.acc-panel-inner{ padding-bottom: 1.6rem; color: var(--ivory-mute); line-height: 1.7; max-width: 62ch; }

/* -------------------------------------------------
   Forms
   ------------------------------------------------- */
.field{
    width: 100%; background: rgba(var(--text-rgb),.04); border: 1px solid var(--line-soft); color: var(--ivory);
    padding: 1rem 1.1rem; font-family: 'Inter', sans-serif; font-size: .92rem; transition: border-color .2s ease, background .2s ease;
}
.field:focus{ outline: none; border-color: var(--gold); background: rgba(var(--text-rgb),.06); }
.field::placeholder{ color: var(--ivory-faint); }
label.field-label{ display: block; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ivory-faint); margin-bottom: .5rem; }

/* -------------------------------------------------
   Footer
   ------------------------------------------------- */
.site-footer{ background: var(--footer-bg); border-top: 1px solid var(--line-soft); transition: background .3s ease; }
.footer-link{ color: var(--ivory-mute); font-size: .9rem; transition: color .2s ease; }
.footer-link:hover{ color: var(--gold-bright); }
.social-btn{
    width: 40px; height: 40px; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center;
    color: var(--ivory-mute); transition: all .2s ease;
}
.social-btn:hover{ color: var(--obsidian); background: var(--gold); border-color: var(--gold); }

/* -------------------------------------------------
   Testimonials
   ------------------------------------------------- */
.avatar-mono{
    width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: var(--charcoal-raise); border: 1px solid var(--line);
    font-family: 'Playfair Display', serif; font-size: 1.05rem; color: var(--gold-bright);
}
.stars{ display: inline-flex; gap: 2px; }
.stars svg{ width: 14px; height: 14px; fill: var(--gold-bright); }

/* -------------------------------------------------
   Marquee (certifications / brand strip)
   ------------------------------------------------- */
.marquee{ overflow: hidden; position: relative; }
.marquee-track{ display: flex; width: max-content; animation: marquee 28s linear infinite; }
@keyframes marquee{ from{ transform: translateX(0);} to{ transform: translateX(-50%);} }

/* -------------------------------------------------
   Back to top
   ------------------------------------------------- */
.back-top{
    position: fixed; right: 22px; bottom: 22px; z-index: 90; width: 48px; height: 48px;
    background: var(--charcoal); border: 1px solid var(--line); color: var(--gold-bright);
    display: flex; align-items: center; justify-content: center; cursor: pointer;
    opacity: 0; visibility: hidden; transform: translateY(10px); transition: all .3s ease;
}
.back-top.show{ opacity: 1; visibility: visible; transform: translateY(0); }

/* -------------------------------------------------
   Toast (form feedback)
   ------------------------------------------------- */
.toast{
    position: fixed; top: 100px; left: 50%; transform: translate(-50%, -14px); z-index: 400;
    background: var(--charcoal-raise); border: 1px solid var(--line); padding: 1rem 1.4rem; color: var(--ivory);
    opacity: 0; visibility: hidden; transition: all .35s ease; max-width: 90vw; font-size: .9rem;
}
.toast.show{ opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.toast.error{ border-color: rgba(201,66,88,.5); }
.toast.success{ border-color: rgba(63,174,124,.5); }

/* -------------------------------------------------
   Loop counter for gemstones grid (bento swap)
   ------------------------------------------------- */
.loop-set{ transition: opacity .6s ease; }

@media (max-width: 768px){
    .hero-slider{ min-height: 560px; }
    .page-banner{ padding-top: 8.5rem; padding-bottom: 3.5rem; }
}