Refund policy
.rh1{position:relative;width:100vw;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;overflow-x:hidden;isolation:isolate;
background:radial-gradient(120% 80% at 50% -4%,#161310 0%,#0a0806 42%,#000 100%);
font-family:'Inter',system-ui,-apple-system,sans-serif;padding:0 0 120px;-webkit-font-smoothing:antialiased}
.rh1 *{box-sizing:border-box}
.rh1 h1,.rh1 h2,.rh1 h3,.rh1 h4,.rh1 p,.rh1 span,.rh1 b,.rh1 button,.rh1 em,.rh1 small,.rh1 li,.rh1 a,.rh1 div{color:#f1ede4;-webkit-text-fill-color:#f1ede4}
.rh1-veil{position:absolute;inset:0;z-index:0;pointer-events:none;background:
radial-gradient(60% 40% at 50% 40%,rgba(233,200,119,.10),transparent 62%)}
.rh1-wrap{position:relative;z-index:2;max-width:1000px;margin:0 auto;padding:0 20px}
.rh1-head{padding:74px 0 8px;text-align:center}
.rh1-kick{display:inline-flex;align-items:center;gap:9px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.32em;text-transform:uppercase;
color:#e9c877!important;-webkit-text-fill-color:#e9c877!important;font-weight:600;margin-bottom:18px}
.rh1-kick i{width:6px;height:6px;border-radius:50%;background:#e9c877;box-shadow:0 0 12px #e9c877;font-style:normal;animation:rh1blip 2s ease-in-out infinite}
@keyframes rh1blip{50%{opacity:.35}}
.rh1-head h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(33px,7.2vw,60px);line-height:1.03;margin:0 0 14px;color:#fff!important;-webkit-text-fill-color:#fff!important}
.rh1-head h2 em{font-style:italic;color:#e9c877!important;-webkit-text-fill-color:#e9c877!important}
.rh1-head p{max-width:540px;margin:0 auto;font-size:15px;line-height:1.7;color:#b3ab9b!important;-webkit-text-fill-color:#b3ab9b!important}
/* ===== HUD stage ===== */
.rh1-hud{position:relative;margin:26px 0 0;border-radius:20px;overflow:hidden;
background:linear-gradient(180deg,rgba(20,17,12,.6),rgba(0,0,0,.86));border:1px solid rgba(233,200,119,.2);
box-shadow:0 40px 100px -54px rgba(0,0,0,1),inset 0 0 90px rgba(0,0,0,.7)}
.rh1-hud::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;opacity:.5;
background:repeating-linear-gradient(0deg,rgba(233,200,119,.04) 0 1px,transparent 1px 3px)}
.rh1-cnr{position:absolute;width:26px;height:26px;z-index:5;border:2px solid rgba(233,200,119,.6);pointer-events:none}
.rh1-cnr.tl{top:12px;left:12px;border-right:0;border-bottom:0}
.rh1-cnr.tr{top:12px;right:12px;border-left:0;border-bottom:0}
.rh1-cnr.bl{bottom:12px;left:12px;border-right:0;border-top:0}
.rh1-cnr.br{bottom:12px;right:12px;border-left:0;border-top:0}
.rh1-stage-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:0}
.rh1-canvaswrap{position:relative;min-height:340px}
.rh1-canvaswrap canvas{display:block;width:100%;height:100%;position:absolute;inset:0}
.rh1-cap{position:absolute;left:0;right:0;bottom:14px;text-align:center;z-index:3;font-family:'JetBrains Mono',monospace;
font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#8a8272!important;-webkit-text-fill-color:#8a8272!important}
/* readout */
.rh1-read{position:relative;z-index:3;padding:26px 24px;border-left:1px solid rgba(233,200,119,.14);display:flex;flex-direction:column;min-height:340px}
.rh1-status{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px;
color:#8a8272!important;-webkit-text-fill-color:#8a8272!important;display:flex;align-items:center;gap:8px}
.rh1-status .led{width:8px;height:8px;border-radius:50%;background:#e9c877;box-shadow:0 0 8px #e9c877}
.rh1-fig{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}
.rh1-fig .n{font-family:'Cormorant Garamond',serif;font-size:56px;font-weight:600;line-height:.9;color:#fff!important;-webkit-text-fill-color:#fff!important}
.rh1-fig .u{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#e9c877!important;-webkit-text-fill-color:#e9c877!important}
.rh1-rtitle{font-size:16px;font-weight:700;color:#fff!important;-webkit-text-fill-color:#fff!important;margin:6px 0 8px}
.rh1-steps{margin:0;padding:0;list-style:none}
.rh1-steps li{position:relative;padding-left:20px;margin:0 0 9px;font-size:13.4px;line-height:1.55;color:#ccc4b4!important;-webkit-text-fill-color:#ccc4b4!important}
.rh1-steps li::before{content:"";position:absolute;left:1px;top:7px;width:7px;height:7px;border-radius:2px;background:#e9c877;box-shadow:0 0 7px rgba(233,200,119,.7)}
.rh1-steps li b{color:#fff!important;-webkit-text-fill-color:#fff!important}
.rh1-steps li .g{color:#a9e08f!important;-webkit-text-fill-color:#a9e08f!important;font-weight:600}
.rh1-steps li .w{color:#f0c86a!important;-webkit-text-fill-color:#f0c86a!important;font-weight:600}
.rh1-tag{display:inline-block;margin-top:auto;align-self:flex-start;padding:5px 12px;border-radius:100px;font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:700;letter-spacing:.06em}
.rh1-tag.good{background:rgba(120,190,120,.16);color:#a9e08f!important;-webkit-text-fill-color:#a9e08f!important}
.rh1-tag.warn{background:rgba(233,200,119,.16);color:#f0d68c!important;-webkit-text-fill-color:#f0d68c!important}
.rh1-tag.neut{background:rgba(200,200,200,.12);color:#cfc8b8!important;-webkit-text-fill-color:#cfc8b8!important}
/* control bar */
.rh1-ctrl{position:relative;z-index:3;padding:16px 16px 18px;border-top:1px solid rgba(233,200,119,.14);background:rgba(255,255,255,.015)}
.rh1-ctrl-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.rh1-prompt{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#8a8272!important;-webkit-text-fill-color:#8a8272!important}
.rh1-meter{display:flex;align-items:center;gap:10px}
.rh1-meter .mt{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.08em;color:#e9c877!important;-webkit-text-fill-color:#e9c877!important}
.rh1-pips{display:flex;gap:5px}
.rh1-pip{width:16px;height:5px;border-radius:3px;background:rgba(255,255,255,.14);transition:.3s}
.rh1-pip.on{background:linear-gradient(90deg,#f3d792,#e0b458);box-shadow:0 0 8px rgba(233,200,119,.7)}
.rh1-chips{display:flex;flex-wrap:wrap;gap:9px}
.rh1-chip{appearance:none;border:1px solid rgba(233,200,119,.28);background:rgba(233,200,119,.06);cursor:pointer;font-family:'Inter',sans-serif;
font-size:13px;font-weight:600;padding:10px 15px;border-radius:100px;color:#f0dca6!important;-webkit-text-fill-color:#f0dca6!important;transition:.22s;-webkit-tap-highlight-color:transparent;position:relative}
.rh1-chip:hover,.rh1-chip:focus-visible{background:rgba(233,200,119,.16);border-color:rgba(233,200,119,.55);outline:none;transform:translateY(-1px)}
.rh1-chip.on{background:linear-gradient(180deg,#f3d792,#e0b458);color:#1a1405!important;-webkit-text-fill-color:#1a1405!important;border-color:#e9c877}
.rh1-chip.seen::after{content:"✓";position:absolute;top:-6px;right:-4px;width:16px;height:16px;font-size:10px;border-radius:50%;
background:#a9e08f;color:#0c1a0c!important;-webkit-text-fill-color:#0c1a0c!important;display:flex;align-items:center;justify-content:center;font-weight:700}
.rh1-done{margin:12px 0 0;text-align:center;font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.1em;color:#a9e08f!important;-webkit-text-fill-color:#a9e08f!important;opacity:0;transition:.5s;height:0;overflow:hidden}
.rh1-done.show{opacity:1;height:auto;margin-top:14px}
/* ===== plain info ===== */
.rh1-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0 0}
.rh1-card{padding:24px 22px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015));border:1px solid rgba(255,255,255,.09)}
.rh1-card .ch{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.rh1-card .ci{width:34px;height:34px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;background:rgba(233,200,119,.14);border:1px solid rgba(233,200,119,.3)}
.rh1-card .ci svg{width:17px;height:17px;stroke:#e9c877;fill:none;stroke-width:1.8}
.rh1-card h3{margin:0;font-family:'Cormorant Garamond',serif;font-weight:600;font-size:22px;color:#fff!important;-webkit-text-fill-color:#fff!important}
.rh1-card ul{margin:0;padding:0;list-style:none}
.rh1-card li{position:relative;padding:0 0 0 22px;margin:0 0 11px;font-size:13.6px;line-height:1.62;color:#c9c2b3!important;-webkit-text-fill-color:#c9c2b3!important}
.rh1-card li:last-child{margin-bottom:0}
.rh1-card li::before{content:"";position:absolute;left:2px;top:8px;width:7px;height:7px;border-radius:50%;background:#e9c877;box-shadow:0 0 8px rgba(233,200,119,.7)}
.rh1-card li b{color:#fff!important;-webkit-text-fill-color:#fff!important;font-weight:700}
.rh1-cta{margin:34px auto 0;text-align:center;padding:38px 24px;border-radius:18px;
background:radial-gradient(120% 130% at 50% 0%,rgba(233,200,119,.14),rgba(255,255,255,.015));border:1px solid rgba(233,200,119,.24)}
.rh1-cta h3{margin:0 0 8px;font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(24px,4.6vw,36px);color:#fff!important;-webkit-text-fill-color:#fff!important}
.rh1-cta p{margin:0 0 20px;font-size:14.5px;color:#b3ab9b!important;-webkit-text-fill-color:#b3ab9b!important}
.rh1-btn{display:inline-flex;align-items:center;gap:10px;padding:15px 30px;border-radius:100px;background:linear-gradient(180deg,#f3d792,#e0b458);
color:#1a1405!important;-webkit-text-fill-color:#1a1405!important;font-weight:700;font-size:14.5px;text-decoration:none;box-shadow:0 16px 40px -14px rgba(233,200,119,.7);transition:.22s}
.rh1-btn:hover{transform:translateY(-2px)}
@media(max-width:780px){
.rh1-stage-grid{grid-template-columns:1fr}
.rh1-read{border-left:0;border-top:1px solid rgba(233,200,119,.14);min-height:0}
.rh1-canvaswrap{min-height:300px}
.rh1-cols{grid-template-columns:1fr}
.rh1-head{padding-top:56px}
}
(function(){
var s=document.currentScript.previousElementSibling;
if(!s||!s.classList.contains('rh1')){var all=document.getElementsByClassName('rh1');s=all[all.length-1];}
var reduce=window.matchMedia&&window.matchMedia('(prefers-reduced-motion:reduce)').matches;
/* ================= HOLO-GEM CANVAS ================= */
var cv=s.querySelector('#rh1-cv');
var ctx=cv&&cv.getContext?cv.getContext('2d'):null;
var host=cv?cv.parentNode:null;
var W=0,H=0,DPR=Math.min(window.devicePixelRatio||1,2);
var ang=0, tilt=0.42, pulse=0, tint=[233,200,119], baseTint=[233,200,119];
var sparks=[], raf=null, vis=true;
// diamond model
var TN=8, verts=[], edges=[];
(function build(){
var table=[],girdle=[];
for(var i=0;i<TN;i++){
var a=i/TN*Math.PI*2;
table.push([Math.cos(a)*0.44,0.5,Math.sin(a)*0.44]);
girdle.push([Math.cos(a)*1.0,0.12,Math.sin(a)*1.0]);
}
var culet=[0,-1.15,0];
var ti=[],gi=[];
table.forEach(function(v){ti.push(verts.push(v)-1);});
girdle.forEach(function(v){gi.push(verts.push(v)-1);});
var ci=verts.push(culet)-1;
for(var i=0;i<TN;i++){
edges.push([ti[i],ti[(i+1)%TN]]); // table ring
edges.push([gi[i],gi[(i+1)%TN]]); // girdle ring
edges.push([ti[i],gi[i]]); // crown facet
edges.push([ti[i],gi[(i+1)%TN]]); // crown facet diagonal
edges.push([gi[i],ci]); // pavilion
}
})();
function size(){
if(!host)return;
W=host.clientWidth;H=host.clientHeight||340;
cv.width=W*DPR;cv.height=H*DPR;ctx.setTransform(DPR,0,0,DPR,0,0);
}
function mkSpark(){
var r=(0.55+Math.random()*0.9);
return {r:r,a:Math.random()*Math.PI*2,sp:(0.002+Math.random()*0.006)*(Math.random()<.5?1:-1),
ph:Math.random()*Math.PI*2,tw:0.6+Math.random()*1.4,sz:0.6+Math.random()*1.5,yj:(Math.random()-0.5)*0.5};
}
for(var i=0;i<26;i++)sparks.push(mkSpark());
function project(v,scale,cx,cy){
// rotate Y
var x=v[0]*Math.cos(ang)+v[2]*Math.sin(ang);
var z=-v[0]*Math.sin(ang)+v[2]*Math.cos(ang);
var y=v[1];
// tilt X
var y2=y*Math.cos(tilt)-z*Math.sin(tilt);
var z2=y*Math.sin(tilt)+z*Math.cos(tilt);
var f=4.2, p=f/(f-z2);
return {x:cx+x*scale*p, y:cy - y2*scale*p, z:z2, p:p};
}
function frame(){
if(!vis){raf=null;return;}
raf=requestAnimationFrame(frame);
ctx.clearRect(0,0,W,H);
var cx=W/2, cy=H/2, scale=Math.min(W,H)*0.30;
if(!reduce)ang+=0.008;
if(pulse>0)pulse*=0.94;
var col=[
Math.round(baseTint[0]+(tint[0]-baseTint[0])*pulse),
Math.round(baseTint[1]+(tint[1]-baseTint[1])*pulse),
Math.round(baseTint[2]+(tint[2]-baseTint[2])*pulse)
];
// orbiting sparks (behind)
for(var i=0;i<sparks.length;i++){
var sp=sparks[i];if(!reduce)sp.a+=sp.sp;
var sx=cx+Math.cos(sp.a)*scale*(1.05+sp.r);
var sy=cy+Math.sin(sp.a)*scale*(0.55+sp.r*0.5)+sp.yj*scale;
var tw=0.35+0.65*Math.abs(Math.sin(Date.now?0:0));
tw=0.4+0.6*Math.abs(Math.sin(sp.ph+ang*sp.tw*6));
ctx.beginPath();ctx.arc(sx,sy,sp.sz*(1+pulse),0,6.283);
ctx.fillStyle='rgba('+col[0]+','+col[1]+','+col[2]+','+(0.25+0.5*tw)+')';
ctx.shadowColor='rgba('+col[0]+','+col[1]+','+col[2]+',.9)';ctx.shadowBlur=6;ctx.fill();
}
ctx.shadowBlur=0;
// project verts
var P=[];for(var i=0;i<verts.length;i++)P.push(project(verts[i],scale,cx,cy));
// glow halo
var grd=ctx.createRadialGradient(cx,cy,scale*0.2,cx,cy,scale*1.5);
grd.addColorStop(0,'rgba('+col[0]+','+col[1]+','+col[2]+','+(0.10+0.14*pulse)+')');
grd.addColorStop(1,'rgba(0,0,0,0)');
ctx.fillStyle=grd;ctx.fillRect(0,0,W,H);
// edges
ctx.lineWidth=1.2;
for(var i=0;i<edges.length;i++){
var a=P[edges[i][0]],b=P[edges[i][1]];
var depth=(a.z+b.z)/2;
var al=0.30+0.55*((depth+1.2)/2.4);al=Math.max(0.12,Math.min(0.95,al))*(0.8+0.5*pulse);
ctx.beginPath();ctx.moveTo(a.x,a.y);ctx.lineTo(b.x,b.y);
ctx.strokeStyle='rgba('+col[0]+','+col[1]+','+col[2]+','+al+')';
ctx.shadowColor='rgba('+col[0]+','+col[1]+','+col[2]+',.8)';ctx.shadowBlur=8*(0.5+pulse);
ctx.stroke();
}
ctx.shadowBlur=0;
// vertex glints
for(var i=0;i<P.length;i++){
var v=P[i];var al=0.4+0.55*((v.z+1.2)/2.4);
ctx.beginPath();ctx.arc(v.x,v.y,1.6+1.4*((v.z+1.2)/2.4)+pulse,0,6.283);
ctx.fillStyle='rgba(255,'+Math.min(255,col[1]+30)+','+Math.min(255,col[2]+60)+','+Math.max(0.3,al)+')';
ctx.shadowColor='rgba('+col[0]+','+col[1]+','+col[2]+',1)';ctx.shadowBlur=8;ctx.fill();
}
ctx.shadowBlur=0;
}
if(host){
size();window.addEventListener('resize',size);
if('IntersectionObserver' in window){
new IntersectionObserver(function(e){vis=e[0].isIntersecting;if(vis&&!raf)frame();},{threshold:.02}).observe(host);
}
frame();
}
/* ================= interaction ================= */
var chips=Array.prototype.slice.call(s.querySelectorAll('.rh1-chip'));
var pips=Array.prototype.slice.call(s.querySelectorAll('.rh1-pip'));
var st=s.querySelector('#rh1-st'), fn=s.querySelector('#rh1-fn'), fu=s.querySelector('#rh1-fu'),
rt=s.querySelector('#rh1-rt'), stepsEl=s.querySelector('#rh1-steps'), tagEl=s.querySelector('#rh1-tag'),
led=s.querySelector('#rh1-led'), doneEl=s.querySelector('#rh1-done'), cap=s.querySelector('#rh1-cap');
var DATA={
faulty:{fn:30,fu:'days to report',st:'PATH · FAULTY ITEM',rt:'Faulty within 30 days',tint:[150,220,150],tag:['good','◆ FREE RETURN'],
steps:['Report within <b>30 days</b> of arrival to <b>support@the-flaire.com</b>.','We send a <span class="g">prepaid label</span> — <b>the return is on us</b>.','Outcome: replacement or full resolution.']},
mind:{fn:12,fu:'months credit',st:'PATH · CHANGE OF MIND',rt:'Store credit, valid a year',tint:[240,214,140],tag:['warn','★ STORE CREDIT'],
steps:['Email us within <b>30 days</b> of delivery.','You receive <span class="g">store credit</span>, valid a <b>full year</b>.','Return shipping is <span class="w">on you</span>; piece unworn, tags on, packaging intact.']},
size:{fn:12,fu:'months credit',st:'PATH · WRONG SIZE',rt:'Swap it, keep the value',tint:[240,214,140],tag:['warn','★ STORE CREDIT'],
steps:['Treated as change of mind — <span class="g">store credit</span>, one year.','Fastest: <b>return first</b>, then reorder your size — no waiting.','Return shipping is <span class="w">on you</span>; codes can’t apply to exchanges.']},
wrong:{fn:48,fu:'hours to flag',st:'PATH · DAMAGED / WRONG',rt:'On us — we fix it',tint:[150,220,150],tag:['good','◆ NO COST'],
steps:['Contact us within <b>48 hours</b> of delivery.','We handle everything — <span class="g">at no cost to you</span>.','A correct piece or full resolution, fast.']},
eu:{fn:14,fu:'days cooling-off',st:'PATH · EU ORDER',rt:'14 days, no questions',tint:[150,220,150],tag:['good','◆ NO QUESTIONS'],
steps:['EU orders get a <b>14-day cooling-off period</b>.','<span class="g">No questions asked</span> — change your mind freely.','Return in original condition with tags and packaging.']},
no:{fn:'✕',fu:'not returnable',st:'PATH · EXCEPTIONS',rt:'A few pieces stay yours',tint:[210,210,210],tag:['neut','✕ EXCEPTIONS'],
steps:['Can’t return: <b>personalised / custom</b>, personal-care items, gift cards.','Wear-and-tear isn’t a defect: bending, drops, chemical exposure.','Follow the care card to keep your warranty alive.']}
};
var seen={}, count=0;
function countUp(target){
if(typeof target!=='number'){fn.textContent=target;return;}
if(reduce){fn.textContent=target;return;}
var t0=null,dur=700;
function step(ts){if(!t0)t0=ts;var p=Math.min(1,(ts-t0)/dur);fn.textContent=Math.round(target*(1-Math.pow(1-p,3)));if(p<1)requestAnimationFrame(step);}
requestAnimationFrame(step);
}
function select(k,el){
var d=DATA[k];if(!d)return;
chips.forEach(function(x){x.classList.remove('on');});el.classList.add('on');
st.textContent=d.st; rt.textContent=d.rt; fu.textContent=d.fu;
countUp(d.fn);
stepsEl.innerHTML=d.steps.map(function(x){return '<li>'+x+'</li>';}).join('');
tagEl.className='rh1-tag '+d.tag[0]; tagEl.textContent=d.tag[1];
led.style.background='rgb('+d.tint[0]+','+d.tint[1]+','+d.tint[2]+')';
led.style.boxShadow='0 0 8px rgb('+d.tint[0]+','+d.tint[1]+','+d.tint[2]+')';
cap.textContent='◇ '+d.st.toLowerCase();
// gem reacts
tint=d.tint.slice(); pulse=1;
for(var i=0;i<10;i++)sparks.push(mkSpark());
if(sparks.length>60)sparks.splice(0,sparks.length-60);
// meter
if(!seen[k]){seen[k]=1;count++;if(pips[count-1])pips[count-1].classList.add('on');el.classList.add('seen');
if(count>=chips.length){doneEl.classList.add('show');}}
}
chips.forEach(function(c){c.addEventListener('click',function(){select(c.getAttribute('data-k'),c);});});
})();
Returns & Refunds · The Flaire
Run your return through the console
Tap your situation and watch the gem respond. Your exact path lights up on the right — window, shipping, outcome.
◇ Flaire returns core · live
Awaiting input — select a situation
—
Your return path appears here
- Pick a situation below — faulty, changed mind, wrong size, damaged, or EU.
- The console maps your window, who covers shipping, and how you're made whole.
- Map all six to complete the returns brief.
▸ Select situation
PATHS MAPPED
My item is faulty
I changed my mind
Wrong size
Damaged / wrong item
I'm in the EU
Can't be returned?
◆ RETURNS BRIEF COMPLETE — you're fully covered. ◆
Return-ready checklist
- Unworn & unused, in original condition with all tags attached and original packaging.
- Free of marks or scents — no perfume, makeup, lotion or pet hair.
- Securely packaged for the journey back; anything short of this may not be accepted.
- Faulty items ship back free on a prepaid label. Change-of-mind & size returns: shipping is on you.
What we can't take back
- Personalised or custom pieces made just for you.
- Personal-care items, for hygiene reasons, and gift cards.
- Not a defect: bending, dropping or tugging, and damage from perfume, chlorine or lotions.
- Wrong address at checkout: if a parcel can't be delivered and isn't returned to us, store credit only, at our discretion.
Ready when you are
One email starts everything. We reply with your label or next steps.
✦ Email support@the-flaire.com