.pat-tile{position:relative;display:block;width:100%;aspect-ratio:2/3;text-decoration:none;color:var(--text-primary);background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);transition:transform var(--transition-slow),box-shadow var(--transition-slow)}.pat-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.pat-tile:focus-visible{outline:3px solid var(--accent-primary);outline-offset:3px}.pat-tile:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:5;box-shadow:inset 0 0 0 1px var(--border)}.pat-media{position:absolute;inset:0;overflow:hidden;background:color-mix(in srgb,var(--accent-primary) 14%,var(--bg-card))}.pat-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--transition-slow);will-change:transform}.pat-tile:hover .pat-media img{transform:scale(1.05)}.pat-fallback{position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--accent-primary) 16%,var(--bg-card))}.pat-fallback svg{width:44%;max-width:116px;opacity:.75;color:var(--muted-text)}.pat-scrim{position:absolute;left:0;right:0;bottom:0;height:52%;pointer-events:none;z-index:1;background:linear-gradient(to top,rgba(var(--tile-scrim-ink),.95) 0,rgba(var(--tile-scrim-ink),.9) 14%,rgba(var(--tile-scrim-ink),.76) 30%,rgba(var(--tile-scrim-ink),.5) 50%,rgba(var(--tile-scrim-ink),.22) 72%,rgba(var(--tile-scrim-ink),0) 100%);transform-origin:bottom;transform:scaleY(.577);transition:transform var(--transition-base),opacity var(--transition-base)}.pat-tile:focus-within .pat-scrim,.pat-tile:hover .pat-scrim{transform:scaleY(1)}.pat-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:var(--space-md) var(--space-md) var(--space-sm);display:flex;flex-direction:column;gap:5px;color:#fff}.pat-name{font-family:var(--font-display);font-weight:700;font-size:var(--font-xl);letter-spacing:-.015em;line-height:1.1;margin:0;color:#fff;overflow-wrap:anywhere;text-shadow:0 1px 14px rgba(var(--tile-scrim-ink),.45)}.pat-meta{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pat-meta,.pat-submeta{font-size:var(--font-sm);line-height:1.3;color:rgba(255,255,255,.82)}.pat-submeta{display:block;margin-top:3px}.pat-extra{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--transition-base),opacity var(--transition-fast)}.pat-extra-inner{overflow:hidden;min-height:0}.pat-tile:focus-within .pat-extra,.pat-tile:hover .pat-extra{grid-template-rows:1fr;opacity:1}.pat-traits{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:3px;min-width:0;max-height:53px;overflow:hidden}.pat-trait{flex:none;font-size:var(--font-xs);font-weight:600;line-height:1;padding:5px 9px;border-radius:var(--radius-full);white-space:nowrap;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.pat-trait--more{background:transparent;border-style:dashed;color:rgba(255,255,255,.8)}.pat-fee{margin-left:auto;font-size:var(--font-sm);font-weight:700;color:#fff;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.pat-cta{display:inline-block;margin-top:9px;border-bottom:1.5px solid rgba(255,255,255,.55);padding-bottom:2px}.pat-cta,.pat-status{font-size:var(--font-xs);font-weight:700;letter-spacing:.045em;text-transform:uppercase;color:#fff}.pat-status{position:absolute;top:var(--space-sm);right:var(--space-sm);z-index:3;display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 8px;border-radius:var(--radius-full);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-sm)}.pat-status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.pat-status--available{background:var(--success-solid)}.pat-status--pending{background:var(--warning-solid)}.pat-status--hold{background:var(--accent-solid)}.pat-status--other{background:var(--accent-solid-deep)}@media (hover:none){.pat-scrim{transform:scaleY(1)}.pat-extra{grid-template-rows:1fr;opacity:1}}@media (prefers-reduced-motion:reduce){.pat-extra,.pat-media img,.pat-scrim,.pat-tile{transition:none!important}.pat-scrim{transform:scaleY(1)}.pat-extra{grid-template-rows:1fr;opacity:1}}