:root{--porc:#f6f1ed;--porc2:#ede4dd;--rose:#af9188;--rose2:#8c6f66;--blush:#e8d8cf;--graph:#2a2524;--grey:#7a6f6b;--gx:clamp(22px,4.5vw,76px);--serif:'Italiana',Georgia,serif;--sans:'Urbanist',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:clip;-webkit-font-smoothing:antialiased}
body{background:var(--porc);color:var(--graph);font-family:var(--sans);font-size:17px;line-height:1.65;font-weight:400}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.02}
h2{font-size:clamp(46px,5.6vw,92px);letter-spacing:-.01em}
em{font-style:normal;color:var(--rose)}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.34em;text-transform:uppercase;font-weight:600;color:var(--rose2);margin-bottom:24px}
.eyebrow::before{content:"";width:10px;height:10px;background:var(--rose);transform:rotate(45deg)}
body.is-loading{overflow:hidden}

.intro{position:fixed;inset:0;z-index:150;background:var(--graph);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.intro-gem{width:260px;height:250px;overflow:visible}
.intro-gem .lines path{stroke:var(--blush);stroke-width:1.2;stroke-linejoin:round}
.intro-gem .facets path{fill:var(--rose);opacity:0}
.intro-word{font-family:var(--serif);font-size:56px;color:var(--porc);letter-spacing:.06em;margin-top:20px}
.intro-sub{font-size:12px;letter-spacing:.4em;text-transform:uppercase;color:var(--rose)}

.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:22px var(--gx)}
.nav::before{content:"";position:absolute;inset:0;background:rgba(246,241,237,.86);backdrop-filter:blur(14px);opacity:0;transition:opacity .4s;border-bottom:1px solid rgba(42,37,36,.08)}
.nav.scrolled::before{opacity:1}
.nav>*{position:relative}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:30px;letter-spacing:.04em}
.logo span{color:var(--rose)}
.logo svg{width:28px;height:28px;fill:none;stroke:var(--rose);stroke-width:14;stroke-linejoin:round}
.nav-links{display:flex;gap:36px;font-size:14px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.nav-links a:hover{color:var(--rose)}
.btn-nav{background:var(--graph);color:var(--porc);padding:12px 24px;font-size:14px;font-weight:600;letter-spacing:.06em;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,10px 100%,0 50%)}
.btn-nav:hover{background:var(--rose)}

.hero{position:relative;min-height:100vh;display:grid;grid-template-columns:1fr 1.1fr;align-items:center;gap:40px;padding:120px var(--gx) 60px}
.hero-gem{position:relative;height:min(78vh,720px);clip-path:polygon(50% 0%,100% 22%,100% 78%,50% 100%,0% 78%,0% 22%);overflow:hidden}
.hero-gem img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.shine{position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(-120%);pointer-events:none}
.kicker{display:flex;gap:30px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--grey);margin-bottom:34px;font-weight:600}
.kicker span+span::before{content:"◆";color:var(--rose);margin-right:30px;font-size:9px;vertical-align:2px}
.hero-title{font-size:clamp(64px,7.4vw,128px);line-height:.94;margin-bottom:34px}
.hero-title span{display:block}
.hero-title .l2{padding-left:1.2em;color:var(--rose)}
.hero-title .l3{font-size:.52em;padding-top:.3em;font-family:var(--sans);font-weight:300;letter-spacing:-.01em;line-height:1.1}
.hero-title .l4{font-size:.52em;font-family:var(--sans);font-weight:300;letter-spacing:-.01em;padding-left:2.6em;line-height:1.1}
.hero-lead{max-width:540px;font-size:18px;color:#5a504d;margin-bottom:38px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:28px}
.btn{display:inline-flex;align-items:center;gap:12px;padding:18px 34px;font-weight:600;letter-spacing:.04em;font-size:15px;clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,14px 100%,0 50%)}
.btn-dark{background:var(--graph);color:var(--porc)}
.btn-dark:hover{background:var(--rose)}
.btn-line{background:var(--porc2)}
.btn-line:hover{background:var(--blush)}
.btn-light{background:var(--porc);color:var(--graph)}
.btn-light:hover{background:var(--blush)}
.hero-rating{font-size:14px;color:var(--grey)}
.stars{color:var(--rose);letter-spacing:.2em;margin-right:8px}

.facets-band{display:grid;grid-template-columns:repeat(4,1fr);margin:40px var(--gx) 0;border-top:1px solid rgba(42,37,36,.15);border-bottom:1px solid rgba(42,37,36,.15)}
.fb{padding:40px 28px;display:flex;gap:20px;align-items:center;border-right:1px solid rgba(42,37,36,.1)}
.fb:last-child{border-right:0}
.fb b{flex:none;display:grid;place-items:center;width:88px;height:88px;font-family:var(--serif);font-weight:400;font-size:32px;color:var(--porc);background:var(--rose);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.fb span{font-size:15px;color:#5a504d;line-height:1.4}

.claim{padding:180px var(--gx) 160px;text-align:center;display:flex;flex-direction:column;align-items:center}
.claim .eyebrow{justify-content:center}
.claim h2{font-size:clamp(42px,4.8vw,80px);max-width:1200px;line-height:1.1}
.claim-text{max-width:640px;margin-top:40px;color:#5a504d;font-size:19px}

.treat{background:var(--graph);color:var(--porc);padding:150px var(--gx)}
.treat .eyebrow{color:var(--blush)}
.tr-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:80px}
.tr-head .eyebrow{grid-column:1/-1;margin-bottom:-10px}
.tr-head p{color:rgba(246,241,237,.66);max-width:430px;justify-self:end}
.tr-grid{display:grid;grid-template-columns:260px 1fr 1.25fr;gap:60px;align-items:start}
.tr-nav{display:flex;flex-direction:column;position:sticky;top:120px}
.tr-nav button{text-align:left;padding:18px 0;border-bottom:1px solid rgba(246,241,237,.12);font-size:18px;display:flex;gap:16px;align-items:baseline;opacity:.45;font-weight:500}
.tr-nav button i{font-style:normal;font-size:12px;color:var(--rose);letter-spacing:.1em}
.tr-nav button.on{opacity:1}
.tr-nav button:hover{opacity:.9}
.tr-visual{position:sticky;top:120px;aspect-ratio:4/5}
.tr-mask{position:absolute;inset:0;clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%)}
.tr-mask img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.tr-mask img.on{opacity:1}
.tr-lines{position:absolute;inset:-14px;width:calc(100% + 28px);height:calc(100% + 28px);fill:none;stroke:var(--rose);stroke-width:.25;vector-effect:non-scaling-stroke}
.tr-lines polygon{vector-effect:non-scaling-stroke;stroke-width:1}
.tr-panes{position:relative;min-height:600px}
.tp{display:none}.tp.on{display:block}
.tp h3{font-size:58px;margin-bottom:24px;color:var(--porc)}
.tp-lead{color:rgba(246,241,237,.72);margin-bottom:20px;font-size:16px}
.tp-lead.small{margin-top:26px;font-size:14px}
.tp ul{list-style:none}
.tp li{display:flex;gap:24px;justify-content:space-between;align-items:baseline;padding:20px 0;border-bottom:1px solid rgba(246,241,237,.12)}
.tp li b{display:block;font-weight:600;font-size:18px;margin-bottom:4px}
.tp li p{font-size:15px;color:rgba(246,241,237,.62);max-width:520px}
.tp li span{font-family:var(--serif);font-size:30px;white-space:nowrap;color:var(--blush)}
.tp li span::before{content:"CHF ";font-family:var(--sans);font-size:11px;letter-spacing:.1em;color:var(--rose)}
.tp ul.cols li p{font-size:13px}
.tr-foot{margin-top:30px;font-size:13px;color:rgba(246,241,237,.5)}

.team{padding:170px var(--gx)}
.team-head{text-align:center;margin-bottom:90px}
.team-head .eyebrow{justify-content:center}
.team-grid{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:50px;align-items:end}
.member h3{font-size:40px;margin:28px 0 6px}
.member p{color:var(--grey);font-size:15px}
.m2{transform:translateY(70px)}
.m-gem{position:relative;aspect-ratio:4/5;clip-path:polygon(50% 0%,100% 18%,100% 82%,50% 100%,0% 82%,0% 18%);overflow:hidden;background:var(--blush)}
.m-gem img{width:100%;height:100%;object-fit:cover}
.team-walk{aspect-ratio:3/4;overflow:hidden;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.team-walk img{width:100%;height:100%;object-fit:cover;object-position:52% 50%}

.studio{background:var(--porc2)}
.st-sticky{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;padding:0 var(--gx);height:100vh;align-items:center}
.st-text p:last-child{color:#5a504d;margin-top:28px;max-width:440px}
.st-stack{position:relative;height:70vh}
.st-stack figure{position:absolute;inset:0;overflow:hidden;box-shadow:0 40px 80px -40px rgba(42,37,36,.45)}
.st-stack img{width:100%;height:100%;object-fit:cover}

.reviews{display:grid;grid-template-columns:.7fr 1.3fr;gap:80px;align-items:center;padding:170px var(--gx)}
.rv-score{text-align:center;padding:60px 30px;background:var(--graph);color:var(--porc);clip-path:polygon(50% 0%,100% 22%,100% 78%,50% 100%,0% 78%,0% 22%)}
.rv-score b{display:block;font-family:var(--serif);font-weight:400;font-size:150px;line-height:1}
.rv-score .stars{font-size:22px}
.rv-score p{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--blush);margin-top:10px}
.rv-list figure{padding:40px 0;border-bottom:1px solid rgba(42,37,36,.14)}
.rv-list blockquote{font-family:var(--serif);font-size:clamp(30px,2.8vw,46px);line-height:1.18}
.rv-list figcaption{margin-top:18px;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--rose2);font-weight:600}

.shop{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:120px var(--gx) 160px}
.shop-img{background:var(--porc2);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);aspect-ratio:1;max-width:620px;display:grid;place-items:center}
.shop-img img{width:44%;mix-blend-mode:multiply}
.shop-text p:not(.eyebrow){margin:26px 0 36px;color:#5a504d;max-width:470px}

.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;padding:150px var(--gx);background:var(--porc2)}
.faq-head{position:sticky;top:130px;align-self:start}
.faq-list details{border-bottom:1px solid rgba(42,37,36,.15)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 0;font-size:21px;font-weight:600}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary i{width:16px;height:16px;flex:none;border:1.5px solid var(--rose);transform:rotate(45deg);transition:background .3s}
.faq-list details[open] summary i{background:var(--rose)}
.faq-list details div{padding:0 50px 26px 0;color:#5a504d}
.faq-list a{color:var(--rose2);border-bottom:1px solid}

.contact{position:relative;background:var(--graph);color:var(--porc);padding:170px var(--gx) 120px;overflow:hidden}
.contact .eyebrow{color:var(--blush)}
.ct-gem{position:absolute;right:-80px;top:40px;width:640px;height:620px;fill:none;stroke:var(--rose);stroke-width:1;opacity:.45;stroke-linejoin:round}
.ct-inner{position:relative}
.ct-title{font-size:clamp(50px,6vw,104px);max-width:1100px;margin-bottom:50px}
.ct-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:50px;margin-top:110px;padding-top:50px;border-top:1px solid rgba(246,241,237,.14)}
.ct-grid h3{font-family:var(--sans);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--rose);margin-bottom:14px;font-weight:600}
.ct-grid a:hover{color:var(--blush)}
.ln{display:inline-block;margin-top:14px;border-bottom:1px solid var(--rose)}
.hours{list-style:none}
.hours li{display:flex;justify-content:space-between;gap:16px;padding:6px 0;border-bottom:1px solid rgba(246,241,237,.08)}
.hours span{color:rgba(246,241,237,.6)}
.hours .muted{color:rgba(246,241,237,.6)}
.small{font-size:13px;color:rgba(246,241,237,.6);margin-top:12px}
.foot{display:flex;justify-content:space-between;gap:20px;padding:28px var(--gx);font-size:13px;background:#1e1a19;color:rgba(246,241,237,.6)}
.foot nav{display:flex;gap:24px}.foot a:hover{color:var(--porc)}

body.legal{background:var(--porc)}
.legal-head{display:flex;justify-content:space-between;align-items:center;padding:22px var(--gx);background:var(--graph);color:var(--porc)}
.legal-brand{font-family:var(--serif);font-size:28px;letter-spacing:.04em}
.legal-back{color:var(--blush);font-size:14px}
.legal-main{max-width:820px;margin:0 auto;padding:90px 24px 120px}
.legal-kicker{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--rose2);font-weight:600}
.legal-main h1{font-size:clamp(54px,7vw,96px);margin:12px 0 40px}
.legal-main h2{font-size:34px;margin:44px 0 14px}
.legal-main h3{font-size:24px;margin:24px 0 10px}
.legal-main p,.legal-main li{color:#4d4441;margin-bottom:12px}
.legal-main ul{padding-left:20px}
.legal-main a{border-bottom:1px solid var(--rose)}
.legal-lead{font-size:20px}
.legal-url{font-family:ui-monospace,monospace;font-size:13px}
.legal-stand{margin-top:40px;font-size:14px}
.legal-foot{text-align:center;padding:30px;border-top:1px solid rgba(42,37,36,.12);font-size:14px}
