/* Rotating product ring */
.veto-ring{--R:1260px;--card:250px;--r-ink:#141414;--r-white:#fff;--r-soft:#b3aea8;position:relative;height:560px;overflow:hidden;background:var(--paper,#faf9f6)}
.veto-ring *{box-sizing:border-box}
.veto-ring__wheel{position:absolute;left:50%;top:calc(46px + var(--card) * .62 + var(--R));width:0;height:0;will-change:transform}
.veto-ring__ticks{position:absolute;left:calc(-1 * (var(--R) + 20px));top:calc(-1 * (var(--R) + 20px));width:calc(var(--R) * 2 + 40px);aspect-ratio:1;border-radius:50%;pointer-events:none;
  background:repeating-conic-gradient(rgba(20,20,20,.42) 0deg .1deg,transparent .1deg 1.2deg);
  -webkit-mask:radial-gradient(closest-side,transparent calc(100% - 27px),#000 calc(100% - 27px),#000 calc(100% - 13px),transparent calc(100% - 13px));
          mask:radial-gradient(closest-side,transparent calc(100% - 27px),#000 calc(100% - 27px),#000 calc(100% - 13px),transparent calc(100% - 13px))}
.veto-ring__card{position:absolute;left:0;top:0;display:block;width:var(--card);margin:0;padding:8px 8px 0;border:0;border-radius:10px;background:var(--r-ink);color:var(--r-white);font:inherit;text-align:start;cursor:pointer;transform-origin:0 0;
  transform:rotate(calc(var(--i) * 360deg / var(--n))) translateY(calc(-1 * var(--R))) translate(-50%,-50%)}
.veto-ring__card:focus-visible{outline:2px solid var(--gold,#b99b71);outline-offset:3px}
.veto-ring__img{display:block;background:var(--r-white);border-radius:6px;aspect-ratio:1;overflow:hidden}
.veto-ring__img img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.veto-ring__card:hover img{transform:scale(1.06)}
.veto-ring__cap{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:11px 6px 13px;font-size:15px;line-height:1.25}
.veto-ring__price{color:var(--r-soft);font-size:11.5px;letter-spacing:.04em;font-variant-numeric:tabular-nums;white-space:nowrap;direction:ltr}
@media(max-width:640px){
 .veto-ring{--R:880px;--card:172px;height:370px}
 .veto-ring__card{padding:6px 6px 0;border-radius:8px}
 .veto-ring__cap{font-size:12.5px;padding:8px 4px 10px}
 .veto-ring__price{font-size:10px}
}

/* Keys photo band */
.keys-photo{padding-top:clamp(44px,6vw,84px)}
.keys-photo figure{position:relative;margin:0;border-radius:16px;overflow:hidden;aspect-ratio:16/8.4;background:#e4e2dd}
.keys-photo img{position:absolute;inset:0 0 auto;width:100%;height:118%;max-width:none;object-fit:cover;will-change:transform}
.keys-photo .kp-tag{position:absolute;top:16px;inset-inline-start:16px;padding:4px 10px;border-radius:4px;background:var(--ink,#141414);color:var(--paper,#faf9f6);font-size:13px;font-weight:500;letter-spacing:.04em;direction:ltr}
.keys-photo .kp-go{position:absolute;bottom:16px;inset-inline-end:16px;display:flex;align-items:center;gap:10px;padding:8px 16px 8px 8px;border-radius:999px;background:#fff;color:var(--ink,#141414);font-size:15px;font-weight:600;text-decoration:none;transition:transform .2s}
.keys-photo .kp-go:hover{transform:translateY(-2px)}
.keys-photo .kp-go b{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--ink,#141414);color:var(--gold,#b99b71)}.keys-photo .kp-go svg{display:block}
@media(max-width:640px){.keys-photo figure{aspect-ratio:4/3.4;border-radius:12px}}
@media(prefers-reduced-motion:reduce){.veto-ring__img img{transition:none}.keys-photo img{height:100%}}

/* Manifesto, words fill in on scroll */
.cc-manifesto-wrap{padding-top:clamp(20px,4vw,50px)}@media(max-width:640px){.cc-manifesto-wrap{padding-top:0}}
.cc-manifesto{max-width:1000px;margin:0 auto;text-align:center;font-size:clamp(28px,4.2vw,50px);font-weight:400;line-height:1.16;letter-spacing:-.02em;color:var(--ink,#141414);text-wrap:balance}
.cc-manifesto .w{color:#8b847b;transition:color .4s}
.cc-manifesto .w.on{color:var(--ink,#141414)}
@media(prefers-reduced-motion:reduce){.cc-manifesto .w{color:var(--ink,#141414);transition:none}}
.editorial p.ed-lines{max-width:1200px}
.editorial .ed-lines .ln{display:block;text-wrap:balance}

/* What comes with the cage: tabs */
.kbox{text-align:center;padding-block:clamp(80px,10vw,140px) clamp(30px,5vw,60px)}
.kbox h2{font-size:clamp(46px,8.4vw,112px);font-weight:400;line-height:.94;letter-spacing:-.04em;margin:0}
.kb-sub{font-size:19px;margin:26px 0 0}
.kb-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-top:22px}
.kb-tabs button{padding:10px 18px;border:0;border-radius:6px;background:#ebe7e0;color:var(--ink,#141414);font:inherit;font-size:17px;cursor:pointer;transition:background .25s,color .25s,border-radius .35s}
.kb-tabs button:hover{background:#e2ddd4}
.kb-tabs button[aria-selected="true"]{background:var(--ink,#141414);color:#fff;border-radius:999px}
.kb-card{max-width:480px;margin:34px auto 0;padding:36px 28px 40px;border-radius:16px;background:var(--ink,#141414);color:#f1f0ec}
.kb-tag{display:inline-block;padding:3px 9px;border-radius:4px;background:#2f2c2a;color:#f1f0ec;font-size:13px;font-weight:500;letter-spacing:.02em;line-height:1.45}
.kb-ico{display:block;width:42px;height:46px;margin:26px auto 14px;color:#fff}
.kb-card h3{font-size:clamp(40px,5vw,58px);font-weight:400;line-height:1;letter-spacing:-.03em;color:#fff;margin:0}
.kb-card p{max-width:31ch;margin:16px auto 0;font-size:18px;line-height:1.5;color:#d9d5cf}
.kb-btn{display:inline-block;margin-top:26px;padding:12px 22px;border-radius:4px;background:#f1f0ec;color:var(--ink,#141414);font-size:17px;font-weight:500;text-decoration:none;transition:background .2s}
.kb-btn:hover{background:#fff}
.kb-card.in>*{animation:kbRise .55s cubic-bezier(.2,.7,.2,1) both}
@keyframes kbRise{from{transform:translateY(14px);opacity:.35}to{transform:none;opacity:1}}
@media(max-width:640px){.kb-tabs button{font-size:15px;padding:9px 14px}.kb-card{padding:30px 22px 34px}.kb-card p{font-size:17px}}
@media(prefers-reduced-motion:reduce){.kb-card.in>*{animation:none}}

/* Why it matters: three quiet columns */
.kwhy{padding-block:clamp(50px,7vw,100px) clamp(60px,8vw,110px)}
.kw-head{text-align:center;max-width:760px;margin:0 auto}
.kw-head h2{font-size:clamp(24px,2.8vw,34px);font-weight:500;line-height:1.3;letter-spacing:-.01em;margin:14px 0 0;text-wrap:balance}
.kw-list{list-style:none;margin:clamp(40px,5vw,64px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line,#ddd9d1)}
.kw-list li{position:relative;padding:36px clamp(22px,3vw,44px) 6px;border-inline-start:1px solid var(--line,#ddd9d1)}
.kw-list li:first-child{border-inline-start:0;padding-inline-start:0}
.kw-list li:last-child{padding-inline-end:0}
.kw-list li::before{content:"";position:absolute;top:-1px;inset-inline-start:clamp(22px,3vw,44px);width:40px;height:2px;background:var(--gold,#b99b71)}
.kw-list li:first-child::before{inset-inline-start:0}
.kw-num{display:block;margin-bottom:20px;font-size:12px;font-weight:600;letter-spacing:.22em;color:#7a5e36;font-variant-numeric:tabular-nums}
.kw-list h3{font-size:21px;font-weight:600;line-height:1.3;margin:0 0 12px;color:var(--ink,#141414)}
.kw-list p{font-size:16px;line-height:1.75;color:var(--muted,#68635d);margin:0;max-width:34ch}
@media(max-width:820px){
 .kw-list{grid-template-columns:1fr;border-top:0}
 .kw-list li,.kw-list li:first-child,.kw-list li:last-child{padding:30px 0 30px;border-inline-start:0;border-top:1px solid var(--line,#ddd9d1)}
 .kw-list li::before,.kw-list li:first-child::before{inset-inline-start:0}
 .kw-num{margin-bottom:14px}
 .kw-list p{max-width:none}
}

/* Navigation: section links, roomy list on mobile */
.nav-hint{display:none}
@media(max-width:1279px){.main-nav .nav-wide{display:none}}
@media(max-width:860px){.main-nav .nav-mid{display:none}}
@media(max-width:680px){
 .main-nav .nav-wide,.main-nav .nav-mid{display:flex}
 .main-nav{padding:4px 24px 20px;gap:0;max-height:calc(100dvh - 66px);overflow-y:auto;box-shadow:0 26px 40px -32px rgba(0,0,0,.25)}
 .main-nav a{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:13px 2px;font-size:26px;font-weight:400;line-height:1.2;letter-spacing:-.01em;border-bottom:1px solid var(--line,#ddd9d1)}
 .main-nav a:last-child{border-bottom:0}
 .nav-hint{display:inline;font-size:12px;font-weight:500;letter-spacing:.03em;color:var(--gold,#b99b71);white-space:nowrap}
}

.kb-pic{display:block;width:180px;height:180px;margin:26px auto 18px;background:#fff;border-radius:12px;padding:10px}
.kb-pic img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:640px){.kb-pic{width:150px;height:150px}}
