/* buttons — ported from the approved design; colours come only from theme variables. */
.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;border-radius:12px;border:2px solid transparent;font:700 .98rem/1.1 var(--fd);text-decoration:none;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s,background-color .25s;white-space:nowrap}
.btn-pri{background:var(--accent);color:var(--on-accent);box-shadow:0 10px 22px -12px var(--accent)}
.btn-pri:hover{transform:translateY(-2px);box-shadow:0 16px 28px -14px var(--accent)}
.btn-sec{background:var(--paper);color:var(--night);border-color:var(--night)}
.btn-sec:hover{transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--chrome-text);border-color:var(--chrome-3)}
.btn-sm{min-height:40px;padding:0 14px;font-size:.88rem;border-radius:10px}
.btn .lbl{position:relative;z-index:0}
.btn .lbl::after{content:"";position:absolute;z-index:-1;left:-6%;right:-6%;bottom:-6px;height:9px;background:var(--accent-2);-webkit-mask:var(--brush) center/100% 100% no-repeat;mask:var(--brush) center/100% 100% no-repeat;clip-path:inset(0 100% 0 0);transition:clip-path .5s var(--ease)}
.btn-sec .lbl::after{background:var(--accent)}
.btn:hover .lbl::after,.btn:focus-visible .lbl::after{clip-path:inset(0 0 0 0)}
.brush{position:relative;isolation:isolate;text-decoration:none}
.brush::after{content:"";position:absolute;z-index:-1;left:-4px;right:-4px;bottom:2px;height:.62em;background:var(--accent);opacity:.55;-webkit-mask:var(--brush) center/100% 100% no-repeat;mask:var(--brush) center/100% 100% no-repeat;clip-path:inset(0 100% 0 0);transition:clip-path .45s var(--ease)}
.brush:hover::after,.brush:focus-visible::after,.brush[aria-current="page"]::after,.brush.parent::after{clip-path:inset(0 0 0 0)}
.mainnav .brush::after{bottom:4px;left:6px;right:6px;height:.7em;opacity:.85}
.mainnav .brush[aria-current="page"],.mainnav .brush.parent{color:var(--white)}
.textlink{font-weight:700;color:var(--accent-ink);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.textlink::after{bottom:-1px;opacity:.35}
.hl{position:relative;white-space:nowrap;isolation:isolate}
.hl::after{content:"";position:absolute;z-index:-1;left:-2%;right:-3%;bottom:.04em;height:.42em;background:var(--accent-2);-webkit-mask:var(--brush) center/100% 100% no-repeat;mask:var(--brush) center/100% 100% no-repeat}
.js .hl::after{clip-path:inset(0 100% 0 0);transition:clip-path 1s var(--ease) .35s}
.js .hl.in::after{clip-path:inset(0 0 0 0)}
