/* Fortune Fairways / a collection with weight, texture, and a club identity. */
.ff-badge-object{display:inline-grid;place-items:center;position:relative;isolation:isolate;width:min(100%,232px);max-width:100%;vertical-align:middle;transform:perspective(900px) rotateX(5deg) rotateY(-5deg);transform-origin:50% 70%;transition:transform .4s cubic-bezier(.2,.7,.2,1),filter .4s;filter:drop-shadow(0 12px 16px #0005)}
.ff-badge-art{display:block;width:100%;height:auto;overflow:visible}
.ff-badge-art .ff-badge-micro{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:7px;letter-spacing:.6px;fill:#e0e7d9;font-weight:600}
.ff-badge-art .ff-badge-ink{fill:#424b40;letter-spacing:1px}
.ff-badge-art .ff-badge-numeral{font-family:Arial,Helvetica,sans-serif;font-weight:800;font-style:normal;letter-spacing:-3px;fill:#e9eee0;paint-order:stroke fill;stroke:#080e0a;stroke-width:2px;filter:drop-shadow(1px 2px 0 #0008)}
.ff-badge-art .ff-badge-numeral--dark{fill:#273d2d;stroke:#eef0e3;stroke-width:1px;filter:drop-shadow(0 1px 0 #f9faed)}
.ff-badge--locked{filter:saturate(.18) brightness(.72) drop-shadow(0 8px 13px #0005)}
.ff-badge--locked .ff-badge-wordmark{opacity:.6}
.ff-badge--compact{width:100px;flex:0 0 100px;transform:perspective(700px) rotateX(3deg) rotateY(-5deg);filter:drop-shadow(0 6px 8px #0005)}
.ff-badge--compact .ff-badge-art .ff-badge-micro{opacity:.85}
.ff-badge--compact.ff-badge--locked{filter:saturate(.18) brightness(.72) drop-shadow(0 5px 8px #0005)}
.ff-badge-glint{opacity:0;pointer-events:none}
.ff-badge--earned:hover,.training-badge-card:hover .ff-badge--earned,.next-training-badge:hover .ff-badge--earned{transform:perspective(900px) rotateX(-3deg) rotateY(5deg) translateY(-7px);filter:drop-shadow(0 18px 17px #0007)}
.ff-badge--locked:hover,.training-badge-card:hover .ff-badge--locked{transform:perspective(900px) rotateX(0) rotateY(2deg) translateY(-3px);filter:saturate(.25) brightness(.85) drop-shadow(0 12px 15px #0006)}
.ff-badge--earned:hover .ff-badge-glint,.training-badge-card:hover .ff-badge--earned .ff-badge-glint{animation:ff-collectible-glint 1.1s ease-out both}
@keyframes ff-collectible-glint{0%{opacity:0;transform:translateX(0) rotate(25deg)}15%{opacity:.8}85%{opacity:.8}100%{opacity:0;transform:translateX(480px) rotate(25deg)}}
@media(max-width:600px){.ff-badge-object{width:min(100%,218px)}.ff-badge--compact{width:90px;flex-basis:90px}}
@media(hover:none){.ff-badge-object,.ff-badge--compact{transform:perspective(900px) rotateX(2deg) rotateY(-3deg)}.ff-badge--earned:hover,.training-badge-card:hover .ff-badge--earned,.ff-badge--locked:hover,.training-badge-card:hover .ff-badge--locked{transform:perspective(900px) rotateX(2deg) rotateY(-3deg)}.ff-badge-glint{animation:none!important}}
@media(prefers-reduced-motion:reduce){.ff-badge-object,.ff-badge--compact,.ff-badge--earned:hover,.training-badge-card:hover .ff-badge--earned,.ff-badge--locked:hover,.training-badge-card:hover .ff-badge--locked{transition:none;transform:none}.ff-badge-glint{animation:none!important;opacity:0}}

/* The player pass is a dimensional, numbered club bag tag. */
.ff-player-pass{display:grid;grid-template-columns:180px minmax(0,1fr) 240px;gap:34px;padding:34px;margin:28px 0 36px;border:1px solid #62645a;border-bottom:3px solid #171f19;background:radial-gradient(ellipse at 12% 0,#73857521,transparent 55%),linear-gradient(125deg,#242c27,#111a15 65%,#20271e);box-shadow:inset 0 1px #ffffff25,0 18px 35px #0004;position:relative;isolation:isolate;overflow:hidden}
.ff-player-pass:after{content:'';position:absolute;inset:7px;border:1px solid #c9c3b815;pointer-events:none;z-index:-1}
.ff-level-tag{border:0;background:none;display:grid;justify-items:center;gap:14px;color:#c9c3b8;padding:0;cursor:pointer;text-align:center}
.ff-level-tag>span:last-child{font:9px/1.5 var(--mono);letter-spacing:.08em}
.ff-level-object{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;position:relative;width:160px;min-height:216px;padding:31px 13px 18px;border-radius:19px 19px 6px 6px;background:repeating-linear-gradient(105deg,#ffffff02 0 1px,transparent 1px 4px),linear-gradient(135deg,#656d63,#1e2d23 27%,#394d3d 49%,#16281c 76%,#596d56);border:2px solid #acb6a0;box-shadow:inset 0 0 0 3px #152219,inset 0 0 0 4px #a4b39955,3px 5px 0 #080d09,6px 15px 18px #0008;transform:perspective(700px) rotateY(-10deg) rotateZ(-5deg);transition:transform .45s,box-shadow .45s;color:#fafafa;overflow:hidden}
.ff-level-rivet{position:absolute;top:11px;width:25px;height:6px;border-radius:5px;background:#080e09;box-shadow:0 1px #bac3ab,inset 0 2px 3px #000}
.ff-level-edition{font:7px/1.5 var(--mono);letter-spacing:1.3px;color:#d6dece}
.ff-level-object>img{width:95px;height:70px;object-fit:contain;margin:13px 0 4px;filter:drop-shadow(0 2px 1px #000a);opacity:.94}
.ff-level-number{display:flex;gap:12px;align-items:center;font:italic 900 49px/1 var(--sans);text-shadow:0 2px 0 #070c08,0 -1px #ffffff66;letter-spacing:-3px}
.ff-level-number>small{font:10px var(--mono);letter-spacing:1.8px;color:#7fe3cf}
.ff-level-engraving{font:5px/1.5 var(--mono);letter-spacing:.8px;margin-top:14px;color:#c9c3b8;border-top:1px solid #bac7aa55;padding-top:10px;white-space:nowrap}
.ff-level-object:after{content:'';position:absolute;inset:-70% -100%;background:linear-gradient(110deg,transparent 42%,#fafafa24 49%,transparent 56%);transform:translateX(-35%);transition:transform .8s;pointer-events:none}
.ff-level-tag:hover .ff-level-object{transform:perspective(700px) rotateY(5deg) rotateZ(0) translateY(-5px);box-shadow:inset 0 0 0 3px #152219,inset 0 0 0 4px #a4b39955,3px 5px 0 #080d09,6px 22px 23px #0009}
.ff-level-tag:hover .ff-level-object:after{transform:translateX(35%)}
.ff-player-pass .player-level{max-width:none}.ff-player-pass .player-level h2{font-size:clamp(34px,4vw,54px);margin:14px 0 24px;line-height:1;letter-spacing:-.055em;color:#fafafa}.ff-player-pass .training-kicker{color:#c9c3b8;line-height:1.8}.ff-pass-level{display:flex;justify-content:space-between;gap:12px;font:11px var(--mono);color:#7fe3cf;margin:0 0 11px}.ff-player-pass .xp-track{height:7px;background:#b8c7ae26}.ff-player-pass .player-level>p{font-size:14px;color:#c9c3b8;line-height:1.8;margin-top:12px}.ff-pass-stats{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:26px 15px;border-left:1px solid #c9c3b82a;padding-left:28px}.ff-player-pass .journey-count{text-align:left;margin:0}.ff-player-pass .journey-count>strong{font-size:36px;color:#fafafa}.ff-player-pass .journey-count>strong>span{font-size:14px;color:#c9c3b8}.ff-player-pass .journey-count>span{font-size:12px;color:#c9c3b8;line-height:1.6}.ff-player-pass .progress-jump{position:static;grid-column:1/-1;text-align:left;font-size:14px;line-height:1.5;color:#7fe3cf;justify-self:start;margin:0}
.ff-player-card-detail{max-width:480px;margin:auto;padding:24px 0 10px;text-align:center}.ff-player-card-detail .ff-level-object{margin:0 auto 40px;width:190px;min-height:235px}.ff-player-card-detail h3{font-size:45px;line-height:1.1;margin:12px 0 20px}.ff-player-card-detail p{font-size:17px;line-height:1.8;color:#c9c3b8;margin:20px 0}.ff-player-card-detail .btn{margin-top:10px}
@media(max-width:1050px){.ff-player-pass{grid-template-columns:155px minmax(0,1fr);padding:30px 25px;gap:28px}.ff-pass-stats{grid-column:1/-1;grid-template-columns:1fr 1fr auto;border-left:0;border-top:1px solid #c9c3b82a;padding:24px 0 0;align-items:center}.ff-player-pass .progress-jump{grid-column:auto}.ff-level-object{width:145px;min-height:205px}.ff-level-edition{font-size:6px}}
@media(max-width:600px){.ff-player-pass{grid-template-columns:110px minmax(0,1fr);gap:20px 16px;padding:27px 20px}.ff-level-object{width:107px;min-height:164px;padding:25px 7px 12px;border-radius:15px 15px 5px 5px}.ff-level-rivet{top:9px;width:20px;height:5px}.ff-level-edition{font-size:5px;letter-spacing:.6px}.ff-level-object>img{width:70px;height:47px;margin:9px 0}.ff-level-number{font-size:34px;gap:7px}.ff-level-number>small{font-size:7px;letter-spacing:1px}.ff-level-engraving{font-size:3.7px;letter-spacing:.4px;margin-top:11px;padding-top:8px}.ff-level-tag>span:last-child{font-size:7px;letter-spacing:0;max-width:95px}.ff-player-pass .player-level h2{font-size:32px;margin:11px 0 17px}.ff-player-pass .training-kicker{font-size:9px}.ff-pass-level{font-size:9px;gap:7px}.ff-player-pass .player-level>p{font-size:12px;line-height:1.6}.ff-player-pass .player-level>p>span{margin:0 4px}.ff-pass-stats{grid-template-columns:1fr 1fr;gap:24px}.ff-player-pass .progress-jump{grid-column:1/-1;font-size:14px}.ff-player-card-detail .ff-level-object{width:170px;min-height:225px;padding-top:32px}.ff-player-card-detail .ff-level-object>img{width:105px;height:78px}.ff-player-card-detail .ff-level-number{font-size:49px}.ff-player-card-detail .ff-level-number>small{font-size:10px}.ff-player-card-detail .ff-level-edition{font-size:7px}.ff-player-card-detail .ff-level-engraving{font-size:5px}.ff-player-card-detail h3{font-size:38px}}
@media(prefers-reduced-motion:reduce){.ff-level-object,.ff-level-tag:hover .ff-level-object{transform:none;transition:none}.ff-level-object:after{display:none}}
.ff-level-object>img{filter:brightness(0) invert(1) drop-shadow(0 2px 1px #000a)}
