.an-btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:12px;height:var(--button-height-md);padding:0 32px;border:1px solid transparent;border-radius:var(--radius-button);font-family:var(--font-body);font-size:var(--type-button);font-weight:var(--weight-medium);letter-spacing:var(--tracking-button);text-transform:uppercase;line-height:1;white-space:nowrap;cursor:pointer;background:none;transition:color var(--duration-luxury) var(--ease-reveal),border-color var(--duration-luxury) var(--ease-reveal)}
.an-btn::before{content:"";position:absolute;inset:-1px;z-index:-1;background:var(--button-primary-hover);transform:scaleX(0);transform-origin:right center;transition:transform var(--duration-luxury) var(--ease-reveal)}
.an-btn:hover::before{transform:scaleX(1);transform-origin:left center}
.an-btn:active{transform:translateY(1px)}
.an-btn__icon{display:inline-flex;transition:transform var(--duration-standard) var(--ease-out)}
.an-btn:hover .an-btn__icon--end{transform:translateX(4px)}
.an-btn--primary{background:var(--button-primary-bg);color:var(--button-primary-fg)}
.an-btn--secondary{border-color:var(--button-secondary-border);color:var(--text-primary)}
.an-btn--secondary::before{background:var(--color-espresso)}
.an-btn--secondary:hover{color:var(--color-ivory)}
.an-btn--light{background:var(--color-ivory);color:var(--color-espresso)}
.an-btn--light::before{background:var(--color-gold-light)}
.an-btn--on-dark{border-color:var(--color-gold-light);color:var(--color-ivory)}
.an-btn--on-dark::before{background:var(--color-ivory)}
.an-btn--on-dark:hover{color:var(--color-espresso)}
.an-btn--ghost{height:auto;padding:0 0 8px;color:var(--text-primary)}
.an-btn--ghost::before{inset:auto 0 0 0;height:1px;background:var(--accent-line)}
.an-btn--ghost::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:.25}
.an-btn--sm{height:var(--button-height-sm);padding:0 20px;font-size:10px}
.an-btn--lg{height:var(--button-height-lg);padding:0 44px}
.an-btn--full{width:100%}
.an-btn:disabled,.an-btn[aria-disabled="true"]{background:var(--button-disabled-bg);border-color:transparent;color:var(--button-disabled-fg);cursor:not-allowed}
.an-btn--ghost:disabled{background:none;opacity:.5}
.an-btn:disabled::before,.an-btn[aria-disabled="true"]::before{display:none}
.an-btn--loading{cursor:progress}
.an-btn__progress{position:absolute;left:0;right:0;bottom:0;height:1px;overflow:hidden}
.an-btn__progress::after{content:"";position:absolute;inset:0;width:40%;background:var(--color-gold);animation:an-progress 1.4s var(--ease-maison) infinite}

.an-textlink{position:relative;display:inline-flex;align-items:center;gap:12px;padding-bottom:6px;font-family:var(--font-body);font-size:var(--type-eyebrow);font-weight:var(--weight-medium);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;line-height:1.4;color:inherit;background:none;border:0;cursor:pointer}
.an-textlink::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:.25}
.an-textlink::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent-line);transform:scaleX(0);transform-origin:left;transition:transform var(--duration-luxury) var(--ease-reveal)}
.an-textlink:hover{color:inherit}
.an-textlink:hover::after{transform:scaleX(1)}
.an-textlink--plain::before{display:none}
.an-textlink__arrow{display:inline-flex;transition:transform var(--duration-standard) var(--ease-out)}
.an-textlink:hover .an-textlink__arrow{transform:translateX(5px)}

.an-eyebrow-row{display:inline-flex;align-items:center;gap:14px}
.an-eyebrow-row__num{font-family:var(--font-display);font-size:15px;letter-spacing:0.04em;font-style:italic;text-transform:none}
.an-eyebrow-row__rule{width:32px;height:1px;background:var(--accent-line)}

.an-tag{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;height:36px;padding:0 16px;border:1px solid var(--border-hairline);border-radius:var(--radius-0);background:transparent;font-family:var(--font-body);font-size:12px;letter-spacing:0.06em;color:var(--text-primary);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}
.an-tag:hover{border-color:var(--border-strong)}
.an-tag[aria-pressed="true"]{background:var(--color-espresso);border-color:var(--color-espresso);color:var(--color-ivory)}
.an-tag:disabled{opacity:.45;cursor:not-allowed}
.an-tag__count{font-size:10px;color:var(--text-muted)}
.an-tag[aria-pressed="true"] .an-tag__count{color:var(--color-taupe)}
.an-tag--static{cursor:default;height:28px;padding:0 12px;font-size:10px;letter-spacing:0.16em;text-transform:uppercase}

.an-frame{position:relative;overflow:hidden;width:100%;border-radius:var(--radius-image)}
.an-frame img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-cinematic) var(--ease-out),opacity var(--duration-luxury) var(--ease-out)}
.an-frame--zoom:hover img,.an-frame--zoom:hover .an-frame__ph{transform:scale(var(--image-hover-scale))}
.an-frame__ph{position:absolute;inset:0;transition:transform var(--duration-cinematic) var(--ease-out)}
.an-frame__label{position:absolute;left:16px;bottom:14px;right:16px;font-family:var(--font-body);font-size:10px;font-weight:var(--weight-medium);letter-spacing:0.16em;text-transform:uppercase}
.an-frame--reveal{animation:an-mask-up var(--duration-cinematic) var(--ease-reveal) both}
.an-frame__overlay{position:absolute;inset:0}

.an-wordmark{font-family:var(--font-display);font-weight:var(--weight-display-regular);letter-spacing:var(--tracking-wordmark);text-transform:uppercase;line-height:1;white-space:nowrap;display:inline-flex;flex-direction:column;align-items:center;gap:8px}
.an-wordmark__descriptor{font-family:var(--font-body);font-size:9px;font-weight:var(--weight-medium);letter-spacing:0.42em;opacity:.8}

.an-cursor{position:fixed;left:0;top:0;z-index:var(--z-cursor);pointer-events:none;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--color-espresso);display:flex;align-items:center;justify-content:center;transition:width var(--duration-standard) var(--ease-out),height var(--duration-standard) var(--ease-out),margin var(--duration-standard) var(--ease-out),background var(--duration-standard) var(--ease-out),opacity var(--duration-fast)}
.an-cursor--label{width:88px;height:88px;margin:-44px 0 0 -44px;background:rgba(32,23,18,0.88)}
.an-cursor--ring{width:44px;height:44px;margin:-22px 0 0 -22px;background:transparent;border:1px solid var(--color-espresso)}
.an-cursor__label{font-family:var(--font-body);font-size:9px;font-weight:var(--weight-medium);letter-spacing:0.2em;color:var(--color-ivory);opacity:0;transition:opacity var(--duration-fast)}
.an-cursor--label .an-cursor__label{opacity:1}
